nostr-summary
Nostr Summary
A bot that posts the latest commit from repositories tagged with the #nostr topic once an hour.
Public Key
npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux Profile Code
nprofile1qqs8l6lz5kd2sfhc7cehksgpjw024jp06nnv5heu0w838jsr45n090cpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhjctzw5hx6ef009hkuer9wglz5tef
Show more details
Published at
2025-10-25T11:41:20Z Event JSON
{
"id": "bfb41c55da755ebe522bb72e494a57dde1eb48219fdd4f4e4940f6a25ba8037f" ,
"pubkey": "7febe2a59aa826f8f6337b4101939eaac82fd4e6ca5f3c7b8f13ca03ad26f2bf" ,
"created_at": 1761392480 ,
"kind": 0 ,
"tags": [],
"content": "{\"name\":\"nostr-summary\",\"display_name\":\"Nostr Summary\",\"picture\":\"https://robohash.org/npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux?set=set4\u0026size=120x120\",\"website\":\"https://github.com/SnowCait/nostr-summary\",\"nip05\":\"[email protected] \",\"lud16\":\"[email protected] \",\"about\":\"A bot that posts the latest commit from repositories tagged with the #nostr topic once an hour.\"}" ,
"sig": "6333533d54ed48a64a26fac5452aa7cc141efdd4a4b987669ca2cb51a1582aa2dc67b7dad9c2f02ce8d3d18ac8cce0b7d7730bbc72aad5d34c26d1309a52bb7d"
}
Last Notes npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] fix(nr-app): make dark mode work across the app (#255) The Appearance setting (System/Light/Dark) drives nativewind's colorScheme.set(), but @/hooks/useColorScheme re-exported React Native's hook, which only ever reports the OS scheme. The two layouts that consume it therefore picked light-mode icon and overlay colours while their backgrounds went dark — dark icons on a dark background whenever the in-app setting disagreed with the OS. Wrap nativewind's hook instead, which also lets web honour the setting. https://github.com/Trustroots/nostroots/commit/5176c1284d409429135ccdbb62b68446916a169e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ berm-protocol/berm ] bags: check against the published OpenAPI spec, and withdraw a claim Read docs.bags.fm/api-reference/openapi.json and transcribed it. Four corrections: path /token-launch/fee-share/wallet/v2 -> /agent/v2/fee-share-wallet providers three -> eleven chain (unknown) -> SOL|EVM, one handle two wallets accountId assumed to need X OAuth -> returned as platformData.id https://github.com/berm-protocol/berm/commit/f1315bce8414e31696e9457df2d816bc966558ad npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/gopherkind ] Merge pull request #7 from forgesworn/codex/modern-gopher-hardening feat: harden publishing and bridge operations https://github.com/forgesworn/gopherkind/commit/c547a8ad53b167e44bc1366ecce218d4dc962807 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zig-nostr/plaza ] Menu items that look alike, and verbs with room (#107) Three things reported from driving it. The note menu had a glyph on two of its four items and none on the other two, which reads as two items with something extra rather than as one list. A menu's items are alike; a glyph on some of them is a difference that means nothing. All four are plain now. Choosing an item closes the menu. Copying the address and opening on the web https://github.com/zig-nostr/plaza/commit/8a22b2a129d7dd910b284f4a02e3c1d93b19b106 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ nostrdevkit/nostr ] nostr: rework `SingleLetterTag` Pull-Request: https://github.com/nostrdevkit/nostr/pull/1416 Signed-off-by: Yuki Kishimoto <[email protected] > https://github.com/nostrdevkit/nostr/commit/e17d7d8e47b1caac8c89a018d3c064760eba4dcf npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ albidev/hermes-payments ] docs: release 0.1.1 as explicit P6 live-test checkpoint https://github.com/albidev/hermes-payments/commit/041a1852f63db73a55d5fcb85e77b2b04b7fc14b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ WoompaLoompa/btcpay-clink ] v1.0.9: server-issued invoice, session-bound ndebit, DNS-resolving relay validation, exact BOLT11 enforcement https://github.com/WoompaLoompa/btcpay-clink/commit/67c2c4a54e43f57d98a7c88cd5c28fe09706db10 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ qntx/awesome-nostr-relays ] Merge pull request #16 from qntx/dependabot/cargo/clap-4.6.4 chore(deps): bump clap from 4.6.1 to 4.6.4 https://github.com/qntx/awesome-nostr-relays/commit/4826462b501342a86d572208edf36bee6228004f npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/gopherkind ] Merge pull request #6 from forgesworn/codex/restore-prelaunch-versioning Restore pre-launch versioning https://github.com/forgesworn/gopherkind/commit/89c9efcef525390eddaa28c154a4e235a126e595 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ LNVPS/api ] feat(admin): report a referral's outstanding balance and its millisat value The referral detail endpoint showed only gross earned commission per currency, so deciding whether a referrer was near their payout threshold meant netting the payout list by hand — and the threshold is judged on everything owed valued in millisats, which the response did not carry at all. GET /api/admin/v1/referrals/{id} now returns `balances` (per settled currency: earned, settled — paid and reserved, amount plus fee — the https://github.com/LNVPS/api/commit/ca79acf4362a4d950b99ed369c5d94d95626ebac npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] client: cap the reading column and centre the shell The feed had no maximum width, so every extra pixel of a wide monitor went into making lines longer. MEASURED at --fs-3, a post ran 79 characters per line at 1280, 92 at 1440, 140 at 1920 and 160 at 2560. Comfortable prose is 45-75 characters and the classic optimum is 66, so on any large screen the feed sat at roughly DOUBLE the readable maximum — which is most of why the timeline scanned as an undifferentiated wall instead of as separate posts. Now 61 / 65 / 70 / 76 at those same widths. Capping .app (not the feed alone) keeps the three columns adjacent and spends the surplus as one gutter either side of the whole shell. Capping only the feed also fixes the measure, but it opens https://github.com/loblawbob873-svg/posterchanai/commit/48926d52ed9bc79143ebcbeb4850367ead1d886f npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ HORNET-Storage/HORNETS-Relay-Panel ] chore: gitignore runtime logs directory https://github.com/HORNET-Storage/HORNETS-Relay-Panel/commit/8beae0aa44caee8ca5c27fd9c4a20a297290a6fe npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ TsukemonoGit/nos-profile-arekore ] Merge pull request #22 from TsukemonoGit/dependabot/npm_and_yarn/postcss-8.5.25 Bump postcss from 8.5.14 to 8.5.25 https://github.com/TsukemonoGit/nos-profile-arekore/commit/65e3edd400b123e5157b65ffdab8d7c6ba7d3939 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ TsukemonoGit/nos-bookmark-areyatu ] Merge pull request #20 from TsukemonoGit/dependabot/npm_and_yarn/postcss-8.5.25 Bump postcss from 8.5.15 to 8.5.25 https://github.com/TsukemonoGit/nos-bookmark-areyatu/commit/22be6e44a563c89fd7ba3641c44d8eb6a5b9ba63 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ TsukemonoGit/luminostr ] Merge pull request #23 from TsukemonoGit/dependabot/npm_and_yarn/postcss-8.5.25 Bump postcss from 8.5.14 to 8.5.25 https://github.com/TsukemonoGit/luminostr/commit/75f151c1c87d79b7f2a0f2dde6bfa0796f8b0834 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ TsukemonoGit/nake ] Merge pull request #29 from TsukemonoGit/dependabot/npm_and_yarn/postcss-8.5.25 Bump postcss from 8.5.16 to 8.5.25 https://github.com/TsukemonoGit/nake/commit/0d2785d78de73299c36f9c1be5d979e83274ec39 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ derekross/concord-automod ] 📡 Repo moved to nostr: point metadata and README at the ngit remote Cargo.toml repository/homepage now resolve to the gitworkshop view of the nostr announcement instead of GitHub, and the README leads with the nostr:// clone URL. GitHub is archived as of this commit. Co-Authored-By: Claude Opus 5 (1M context) <[email protected] > https://github.com/derekross/concord-automod/commit/ecf6c3044c780612ec1d5e36b109ce3d6dd604c9 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] client: finish the emoji-to-icon conversion Every remaining <button> that led with an emoji now leads with a sprite icon — 93 of them across app.js, meme.js and the shell — plus the links styled as .btn and the section headers, which sit on the same surfaces and would otherwise read as half-converted. Emoji were the last dated signal in the client: they render per-platform, can't inherit colour or state, and sit at the wrong weight next to the type. 28 new symbols cover what the transport controls, meme builder and find bar needed (undo/redo, prev/next, scissors, flip, stop, star, heart, chevrons, …). All stroke currentColor on the 24x24 grid, so they inherit every theme https://github.com/loblawbob873-svg/posterchanai/commit/67b3e394f17bd2f03ea578c5ddb891694d902eed npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ vitorpamplona/amethyst ] Merge pull request #3849 from vitorpamplona/l10n_crowdin_translations New Crowdin Translations https://github.com/vitorpamplona/amethyst/commit/fdc68e801a02984c0acf28b780bcd6f5050b06f8 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ JordanNewell/claudeway ] chore(og): swap BUZZ PUNTED ON thesis for VERIFIABLE CONSENSUS OG alt text was fixed in 7e9b182 but the rendered PNG still carried the misleading "BUZZ PUNTED ON / the coordination layer" framing as visible pixels — anyone landing on the repo or social-card preview saw the old claim. New title: VERIFIABLE CONSENSUS — names the actual primitive without the unverified Buzz dig. Subtitle: "signed agreement, on the open wire". https://github.com/JordanNewell/claudeway/commit/0eb742d1bb6e39a9e7ded4e2c3321eb3519c15ef npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ obelisk-app/obelisk ] Ignore the local backlog notes and promo source art issues.md and obelisk-promo-contact-sheet.jpg have sat untracked at the repo root since before this session's work. Neither belongs in a public tree: the backlog is raw working notes, and the contact sheet is 214K of source art the app never loads. Follows the existing "never ship" convention already used for /issues-with-pictures-and-description/. https://github.com/obelisk-app/obelisk/commit/e9936101849ef6f2e35592f3754961e4fc14ba6e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/libnostr-c ] Document the ESP stack cost of seeding the DRBG (#70) * Document the ESP stack cost of seeding the DRBG * Measure the seeding threshold instead of asserting it https://github.com/privkeyio/libnostr-c/commit/a41bb26f6c68067161cf6935fd7c8499747b168f npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ damus-io/notedeck ] remove stuff Signed-off-by: William Casarin <[email protected] > https://github.com/damus-io/notedeck/commit/4f459004c9d98fe227a686d9911ad2557617674c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ betonetojp/nokakoi ] バックグラウンド復帰後に投稿窓が表示されなくなるバグを修正 CSPのscript-srcにstatic.cloudflareinsights.comを追加 https://github.com/betonetojp/nokakoi/commit/fbfba832669988b85a2c70fd0e2367420e89c48c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ derekross/concord-automod ] 🔒 Privacy hardening: no content at rest, audit retention, state sweep, 0600 files Review findings and fixes, in severity order: 1. Journald was receiving a full decrypted transcript: every incoming message's text was logged at INFO. Now logs metadata only (chat/npub prefixes + length); content available at trace for local debugging. 2. The audit log stored an 80-char plaintext snippet of every flagged message and grew forever. Snippets are now OPT-IN (audit_log_snippets, default false) and entries older than audit_retention_days (default 30, https://github.com/derekross/concord-automod/commit/9f552f2bbad142a3bfcf718335cc9bb30a342895 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ dwebxr/aegis ] fix(csp): let the Cloudflare Web Analytics beacon actually run Cloudflare proxies this domain and injects its Web Analytics beacon into every response, but script-src did not allow static.cloudflareinsights.com — so the script failed to load on every page load. Measured on production: one GET, then `requestfailed: csp`. The result was an error in every visitor's console and zero data reaching Cloudflare. The feature was enabled and broken, not in use. Allowing it restores free page views and real-user Core Web Vitals — roughly https://github.com/dwebxr/aegis/commit/916c8875ce015e66b3c5fb6f3adb3e685a97dc01 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ obelisk-app/obelisk ] Round the composer buttons and stop the IME reading the box as sensitive Two composer fixes. The Send button rendered as a vertical oval. `.obelisk-mobile button` sets a global 44px tap-target floor on both axes; `.composer-send` overrode min-width down to 38px but never min-height, so the button was 38px wide and 44px tall. Same hole in .composer-attach/.composer-emoji, which were rendering as lozenges rather than rounded squares — those three rules were the only ones in the sheet setting min-width without https://github.com/obelisk-app/obelisk/commit/3aeb46b49d6bc1544882e29a4ac0946d834d33d6 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ chebizarro/nostrc ] Sync beads interaction log Co-Authored-By: Claude Fable 5 <[email protected] > https://github.com/chebizarro/nostrc/commit/29953e711f1d5978bdc25abecb44b2338894c6a8 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ geyserfund/geyser-app ] chore(release): prepare v0.50.2 https://github.com/geyserfund/geyser-app/commit/0022ce98c5d5c8a602446494362f15865a0be414 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ bryanmatthewsimonson/xray ] Merge pull request #262 from bryanmatthewsimonson/claude/personas-college docs: derive discipline standards from first principles (DISCIPLINES.md v1.0.0 + guards) https://github.com/bryanmatthewsimonson/xray/commit/55bd7e2996d46fa6f328c2820c2d40b8185c7a0e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ agent-awsome/relay-pulse ] Record shino3's report policy: reply only on 1h+ continuous downtime Co-Authored-By: Claude Fable 5 <[email protected] > https://github.com/agent-awsome/relay-pulse/commit/f4dd214a583f16ed9364b228956890834e632478 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/libnostr-c ] Fail closed when the NIP-17 timestamp cannot be fuzzed (#69) * Fail closed when the NIP-17 timestamp cannot be fuzzed * Release the buffers and wipe the key on the new failure paths https://github.com/privkeyio/libnostr-c/commit/3a61e60a65e774174096207f8a7ae43357ae3131 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ bryanmatthewsimonson/xray ] Merge pull request #261 from bryanmatthewsimonson/claude/constitution-ratification docs: ratify the project constitution (v1.0.0 + concord + guards) https://github.com/bryanmatthewsimonson/xray/commit/bf09214648e8a535f799d7936a6e91a0d4f13db9 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ derekross/concord-automod ] ✨ !automod on/off IS the community switch; bot is staff-only and silent to everyone else Per Derek: !enable followed by !automod on was redundant, and regular members have no business talking to a moderation bot at all. - !enable/!disable removed. '!automod on' in any channel arms auto-mod for that ENTIRE community (and arms the engine + dry-run window on first activation anywhere); '!automod off' disarms that community only. The community store is now the per-community automod switch, same file, same fail-closed semantics. https://github.com/derekross/concord-automod/commit/1b299d57c1fe8f07ede049cb3638c35190ffe4ef npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/burrow ] feat: full cli client (read, search, post, feed, pair) https://github.com/forgesworn/burrow/commit/b0e2f916a24a35a23dd4f9e9bd63f9f65fbbc727 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ dwebxr/aegis ] fix(demo): take the last server call out of a demo visit Production browser check, 10 sessions: the 5 that stayed on the landing page invoked zero functions, but the 5 that entered the demo each issued one POST /api/fetch/ogimage. The og-image backfill in ContentContext fires for any item with a sourceUrl and no imageUrl, and the snapshot's Hacker News entries carry no image — so "an anonymous visit costs zero server functions" was true for the landing page and false for the demo. Two changes, so it is true both ways round: https://github.com/dwebxr/aegis/commit/ac282ff68c21fdf02ebb0bdf675c618be9e5f8e1 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ protolayer-io/choke ] Merge pull request #169 from protolayer-io/feat/announcements-4-ui feat: put the announcements behind a bell that is usually not there https://github.com/protolayer-io/choke/commit/8f435ee878ba6f35b8374d7736fa8144ad90ddda npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ bryanmatthewsimonson/xray ] Merge pull request #265 from bryanmatthewsimonson/chore/security-hardening chore(ci): pin the release supply chain, add SECURITY.md + Dependabot https://github.com/bryanmatthewsimonson/xray/commit/a40ced9aff7e90e2341ebfc79f1ef7c33ba841e7 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ protolayer-io/choke ] Merge pull request #167 from protolayer-io/feat/announcements-2-fetch feat: fetch announcements, and keep only what still holds https://github.com/protolayer-io/choke/commit/38e539081a1684e018b4017034cd87f12ad202f5 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zapcooking/frontend ] Merge pull request #610 from dmnyc/feat/scroll-to-top feat(nav): floating back-to-top button + tap-header/search shortcuts https://github.com/zapcooking/frontend/commit/3cacba5a25643480c759af5cf4ea206ace291767 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ constata-eu/asami ] adds better submission tracking https://github.com/constata-eu/asami/commit/84f3aba83c17e71f74be0dac5272d7a5533cb7f6 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ LNVPS/api ] feat(proxmox): reconfigure VMs during PatchHosts when their config drifts (#353) * feat(proxmox): reconfigure VMs during PatchHosts when their config drifts PatchHosts only re-applied firewall state, so a VM whose config on the hypervisor no longer matched the database (template upgrades, manual edits, changed defaults such as the scsi controller) stayed drifted until someone triggered ConfigureVm by hand. Add VmHostClient::patch_config, a firewall-patch analogue that reads the https://github.com/LNVPS/api/commit/a3332c749db9cabbfe2ed1e0511b295491838ba2 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ OpenSats/website ] Remove NVK from the board and update former member bios (#898) * chore: remove nvk from board of directors * chore: update nvk author bio after board departure * chore: update niftynei author bio after board departure https://github.com/OpenSats/website/commit/c17b33c50387f245f6d4f431ad4f91ab0327b439 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ obelisk-app/obelisk ] Render mentions as @DisplayName instead of a raw npub `parseMentions` resolves display names from the channel's member list and nothing else, so mentioning anyone who is not a member of *that* channel fell through to `shortNpub` — the message body shipped `@npub16dew…`. MentionChip now reads the pubkey's kind:0 from the bridge and prefers displayName, then name, then whatever parse-time resolution produced. Subscribing also calls `ensureUserMetadata`, so a pubkey the client has never seen is fetched on render and the chip fills in when the profile https://github.com/obelisk-app/obelisk/commit/42ca3fe05860de94aaf42635ab0d2e1566cadf88 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ bryanmatthewsimonson/xray ] Merge pull request #297 from bryanmatthewsimonson/claude/transcribe-engine-ui feat(transcriber): engine choice in the extension — settings keys, per-video picker, per-request providers https://github.com/bryanmatthewsimonson/xray/commit/59f16372e2bd18c7c52bb58a54e7784725120fab npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zig-nostr/plaza ] Every sheet takes the keyboard when it opens (#105) Escape closed none of them, and three comments in this file said it did. The runtime resolves Escape from the FOCUSED widget up to the surface around it, with a fallback that only sees ANCHORED surfaces. A sheet here is neither: it is a dialog grown to the whole window, and nothing inside it asked for the caret. So the walk started nowhere and the fallback saw nothing, and Escape was dead on the composer, the name card, the bunker step, edit profile, notifications, the expanded picture and Settings. https://github.com/zig-nostr/plaza/commit/6ba4c0a6f306a90bf569f592cde6128371537cd2 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] sync.sh: stop silently skipping the main app on every deploy `_restart_units` gated each unit on `systemctl cat "$u"`, which READS THE UNIT FILE as the invoking user. /etc/systemd/system/posterchanai.service is mode 600 (every sibling unit is 644 — the restrictive mode looks accidental; its only Environment= lines are PATH and HOME, identical to the 644 worker unit, so there is nothing in it to protect). `cat` therefore returned "Permission denied", the loop read that as "this unit does not exist", and THE MAIN APP was skipped — quietly — on every deploy that targeted it. Caught it on the previous deploy: targets were worker+app, `[sync] restarting` printed for https://github.com/loblawbob873-svg/posterchanai/commit/66b6fc5996537d3b42104caafd97eeb1deb03324 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ CodyTseng/jumble ] chore(release): v26.8.1 https://github.com/CodyTseng/jumble/commit/24ccb2123ae2f8bf7683bba7e0d6c7538148a52a npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ protolayer-io/choke ] Merge pull request #165 from protolayer-io/docs/announcement-channel-spec docs: specify an authenticated announcement channel https://github.com/protolayer-io/choke/commit/1678db8c9a84f081b5d753181bc9cdc51db1c1e5 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ api-evangelist/nostr ] Kin Score 0.6 — provenance-graded rescore Adds this provider's Kin Score artifact for rubric 0.6, the provenance release. 0.6 grades on WHO PUBLISHED an artifact, not merely that one exists. Where API Evangelist authored an artifact on this provider's behalf — a modeled OpenAPI, a candidate MCP server, generated agent skills, a derived agentic-access contract — it now earns a quarter of the award rather than all of it. The artifact records that authorship in its provenance block, so the number can be read with the evidence behind it. https://github.com/api-evangelist/nostr/commit/ecb946983b5f4c5b5a4ad921fd91064f3f544549 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Bitflash-sh/bitflash ] net: back to one accept thread until every relay takes more than one (#114) #113 added three accept threads and called the extras harmless against an un-upgraded relay. They are not: an old relay closes the previous registration whenever the same node registers again, so the threads evict each other in a loop. Measured on the live network -- the node whose registrations landed on the un-upgraded New Jersey relay made 189 registrations in fifteen minutes with zero pairings, unreachable through it and hammering it, while the node on the upgraded relay made 9 with 7 pairings. One relay of three is upgraded, so this would hit two thirds of every node's registrations. The relay half of #113 stays; it is compatible in both directions and is the prerequisite for raising this again, which the comment now states. https://github.com/Bitflash-sh/bitflash/commit/daf2a5710381b0db727ad8e75eadae9cf8557caf npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zapcooking/frontend ] Merge pull request #611 from zapcooking/fix/bluesky-crawler-ua fix(og): drop dead logo_with_text.png card tags on 4 routes; match Bluesky Cardyb https://github.com/zapcooking/frontend/commit/3ff365ce07e6c95163cebcf29876300ef2df5768 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ JSKitty/price-bot ] Move to Vector SDK 0.6 A clean upgrade: no source changes needed, tests green, and a live command round-tripped through the XMR bot after deploy. Worth noting for the next bump — this went 0.4 → 0.6 in one step and still needed nothing, unlike Vector-LLM, which broke on the same jump. The difference is that this bot only ever talks through the SDK, while that one drops to the raw nostr-sdk client for the kind-1 firehose and so is exposed to the 0.44 → 0.45 breakage underneath. https://github.com/JSKitty/price-bot/commit/9bff1191eedeabd2fba990013a257d6b6fc9db45 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ LNVPS/api ] perf(e2e): cut the suite from 17.6s to 11.7s by not sleeping through it Profiling the suite showed test_full_lifecycle was 62% of the total runtime, and almost all of that was idle waiting rather than work. - poll_until now backs off from 25ms up to the caller's interval rather than using it as a fixed cadence. Instrumenting the polls showed nine of them succeeding on their first retry but each still paying a flat 500ms, ~4.6s of pure sleep. The deadline and early exit are unchanged, so every call site keeps its failure semantics and worst case; it also https://github.com/LNVPS/api/commit/541e8f315f2d8aeddcb6581b193c81b799d6aef5 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] fix https://github.com/loblawbob873-svg/posterchanai/commit/fff62a5f0820ebdb4c045629f3fd9f6b45948cec npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ haruki7049/nostr-unko-posting-bot ] Empty commit to run CI https://github.com/haruki7049/nostr-unko-posting-bot/commit/e48418e596800e9d5569eae1937bb04117364ad3 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ kehto/web ] fix(playground): clip topology connector paths (#231) Co-authored-by: Codex <[email protected] > https://github.com/kehto/web/commit/e9c907901fe455f6d3e66af20816cd820ed86db1 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ besoeasy/gupt ] style(chat): pulsate empty-state message icon Add a soft scale and glow loop on the empty chat icon container. https://github.com/besoeasy/gupt/commit/10afca2090a50d9cfd058af905670bad5840efd5 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ nogringo/nostr-mail-client ] feat(settings): add light and dark background presets - Add three built-in background presets with light/dark variants https://github.com/nogringo/nostr-mail-client/commit/42c45599b9d7012b288bc8d8a3aa009686ce4981 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ LNVPS/api ] chore(deps): clear Dependabot advisories — drop serde_yml/libyml, bump quinn-proto Resolves the three open Dependabot alerts: - quinn-proto (high, GHSA-4w2j-m93h-cj5j): remote memory exhaustion from unbounded out-of-order stream reassembly. Bumped 0.11.14 -> 0.11.16. - libyml (high, GHSA-gfxp-f68g-8x78) and serde_yml (medium, GHSA-hhw4-xg65-fp2x): unsound and unmaintained. Every published version is affected, so there is no version to bump to — the fix is to stop using them. https://github.com/LNVPS/api/commit/8d2742c1f1327c7a6f4f0953a3e56e990f109854 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ nostrdevkit/nostr ] database: remove `flatbuf` feature and migrate `flatbuffers` module to `nostr-lmdb` This is part of the plan of reducing the API surface. This allows also more flexibility in the flatbuffers schema, in case the nostr-lmdb implementation needs non-standard fields or structs. Signed-off-by: Yuki Kishimoto <[email protected] > https://github.com/nostrdevkit/nostr/commit/b4d0360747c263c42a555eb314a57b2a1c712b9e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ jim-ww/charshare ] make importing chat optional when importing character from other site https://github.com/jim-ww/charshare/commit/ccd89bc259bf214e978f0bfbbf4282602334be9b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ satoshidude/jointfactory.io ] Record what players buy, and read it back The event log covered everything the server does — tickets, speed, boosts, deposits, draws — and missed the largest joints sink in the game. Plot levels, courier and factory capacity and plantation unlocks are bought in the client; the server only ever saw the resulting state, so no later analysis could say what people actually spend on. It sees them now: progressBreakdown() already prices the difference between two saves for the guard, so the same walk itemises it — how many levels, at what https://github.com/satoshidude/jointfactory.io/commit/695c61ccdeb047d3bbe67cfd5e4b4903e41fbfc0 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ nostrdevkit/nostr ] sdk: bound local relay subscription IDs Subscription ID limits counted Unicode scalar values and were not applied to NEG-OPEN, allowing multibyte IDs to retain more memory than configured. Enforce the limit in UTF-8 bytes for both regular and negentropy subscriptions. Signed-off-by: Yuki Kishimoto <[email protected] > https://github.com/nostrdevkit/nostr/commit/75541f4032cb15459f14f91d27cf650c3bffc684 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] Update web hub cards and retire Wikistr Hide Trustroots.org and Nostroots Web cards inside the Nostroots app, promote Trustroots Wiki, Nomadwiki, and Trashwiki out of the experimental tier, and show the page build timestamp in shared footers. Remove the obsolete Wikistr app, tests, configuration, documentation, and baseline capability requirements. https://github.com/Trustroots/nostroots/commit/e9aa54b6d7ab7bbe3b6491a0e57fe813eba546a7 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ spacecowboy/Feeder ] feat: added audio player for media attachments (#1172) * feat: added podcast link detection Detects playable podcast URLs locally before routing article links out to the browser. Adds focused unit coverage for extension-based and enclosure MIME-based matches. Signed-off-by: Anubhav Choudhary <[email protected] > * feat: added app-scoped podcast playback state https://github.com/spacecowboy/Feeder/commit/ae132fbfbc39304aaac25dd48bbc6c77faba40d8 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ bryanmatthewsimonson/xray ] Merge pull request #272 from bryanmatthewsimonson/claude/local-transcription-diarization feat(capture): local YouTube transcription with speaker diarization https://github.com/bryanmatthewsimonson/xray/commit/09322284a9217849e0b8358b82c8a72a9f4385cd npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ flox1an/nostube ] fix: prevent unsafe origin links https://github.com/flox1an/nostube/commit/718e763c499264941043e43b96445ecf1f9170e8 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ TsukemonoGit/lumilumi ] Merge pull request #1085 from TsukemonoGit/dev らいぶらりあぷで https://github.com/TsukemonoGit/lumilumi/commit/9b6b9a1e81f68183051edbe53926878e30a600b3 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ TsukemonoGit/nostr-content-parser ] Merge pull request #9 from TsukemonoGit/dev fix url parse https://github.com/TsukemonoGit/nostr-content-parser/commit/45e92ea6dc0f617f9caf5afe3a8c83e07958154c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ flox1an/nostube ] fix: cap comment image height https://github.com/flox1an/nostube/commit/87ab57a9a8972b12ac948f6101ec99c2dd00d5aa npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ permissionlesstech/bitchat ] Keyboard navigation for @-mention suggestions (#1542) * Tab and arrow keys for mention autocomplete Highlight the selected suggestion and let Tab accept it. Up/down move the selection when the mention panel is open; Tab otherwise still cycles focus. Co-authored-by: Cursor <[email protected] > https://github.com/permissionlesstech/bitchat/commit/1f59e814f90c3f489f48d68262cb1bf640bf6181 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] fix https://github.com/loblawbob873-svg/posterchanai/commit/5c8dc198d529a0b9b78971fd0727b2d5de768e6c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ lawalletio/lawallet-nwc ] feat(listener): adopt shared vault secrets from Vercel (#132) * feat(scripts): adopt shared secrets from the Vercel project NWC_VAULT_SECRET and LISTENER_AUTH_SECRET must be byte-identical on web and the listener — a mismatched vault key makes every encrypted RemoteWallet undecryptable. Generating on the Fly side and copying by hand was the only way to pair them, which is exactly the step that drifts. --from-vercel now reads both from the same production environment it already https://github.com/lawalletio/lawallet-nwc/commit/ed136981d1be1926014a508be045af3246466b00 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ OpenSats/website ] Resign canary for August 2026 (#897) chore(canary): resign for August 2026 https://github.com/OpenSats/website/commit/fcba7d781b691ca2f29f9d04fbbf6a76c85dbf9a npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ coracle-social/welshman ] Optimize wot https://github.com/coracle-social/welshman/commit/91f3b80d93a7c05fc588b49b31d90d8961868144 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ imattau/write_nostr ] add adaptive-memory activation for personalized reading - graph.ts: shared ActivationEngine + helpers (reinforceEvent, bumpEventAttention, effectiveScore, topActivatedEvents, absorbSearch, spreadFromEvent); putEvents preserves activation across re-adds and builds bidirectional tagged/authors/ mentions edges; pruneStaleCache spares activated nodes - article view: read signal (25s dwell or 70% visible) durably reinforces; similar articles re-ranked by spreading activation over topic edges - interaction buttons: like/boost/zap reinforce on success - semantic search: absorb() warms the query region and re-ranks results https://github.com/imattau/write_nostr/commit/96df5d68ab9cc0d9e2ad26ff47b65fb7deaa591f npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zoreu/tribe ] tribe social projetct https://github.com/zoreu/tribe/commit/bedb9eff79b4964a783e94adc2b7c159b3fbd100 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ haruki7049/nostr-unko-posting-bot ] Empty commit to run CI https://github.com/haruki7049/nostr-unko-posting-bot/commit/cff3f6d4e88c353b80452dc0d020631ccb77212b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Bitflash-sh/bitflash ] docs: put the production numbers in the upgrade note (#107) The deaf-node paragraph cited the bench A/B -- two nodes on one machine for half an hour. Both mining machines have since run 1.2.13 in production: zero spurious disconnections against the 741 the unpatched side logged, and 13 and 18 peers held where the unpatched node held 11, ten of them inbound. Also says what the pre-1.2.11 socket pile cost and what returns the ports. https://github.com/Bitflash-sh/bitflash/commit/8327dde9ea8e518e2b0e2eae41809c9dbeb2396e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ vitorpamplona/amethyst ] Merge pull request #3846 from vitorpamplona/claude/30382-rank-follower-providers-j2cnb9 fix: request follower-count provider's 30382 cards in UserCardsSubAssembler https://github.com/vitorpamplona/amethyst/commit/e10f76665fdbcd7573b9296f12149fdc7c349f59 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ agent-awsome/relay-pulse ] Support watching multiple relays from one collector run RELAYS_CONFIG points at a JSON list of relays; one run probes them all and writes a single status.json, with the dashboard rendering a section per relay. - per-relay history keyed by label, capped at HISTORY_MAX each - the single-relay fields (relay/latest/history) stay at the top level mirroring the first relay, so an existing status.json upgrades without losing its 24h - per-relay "limit" caps how many events a probe pulls: this runs every 10 min, and on a relay you do not operate that is someone else's disk. Hitting the cap https://github.com/agent-awsome/relay-pulse/commit/c29e383583d5a96c4ea485c9ccf6f3cf1d93d957 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] talk: the mouth marker was placed in the wrong coordinate space on a tablet The picker painted the marker from getBoundingClientRect() and read the drag from it too. Those agree at zoom 1 and nowhere else: between 821px and 1920px the app is scaled with body{zoom}, where a rect is a VIEWPORT pixel and a px written to style.left is a LAYOUT pixel. So the pin landed at zoom x the fraction it was given — at .67 it crawled to two-thirds of the picture and stopped, leaving the right and bottom of the image unreachable, and a mouth lined up by eye was recorded ~1.5x too far across and 1.5x too wide. https://github.com/loblawbob873-svg/posterchanai/commit/5f675ba0c2a2cc75c705c6b0d8a93923452c005e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ sette7blo/workstr ] fix program tag denylist collision, temp sheet card and difficulty casing https://github.com/sette7blo/workstr/commit/f67cf6a83e03916045a7c30bc8d774832de330a2 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ koteitan/zundamstr ] v1.1.0/raise measured accuracy on unseen data from 84% to 89.3% over 9 rounds - Route nd/yr, でしょう/だろう, ですけど/ですから through a conjugation-table yogen test (isYogenEnd) instead of the YOGEN character class - Open four classes previously left unconverted by design: request て-form (→てほしいのだ), volitional, 様態のそう, and dialect や/にゃ/じゃ - Generalize the polite-form reduction to relay any trailing particle instead of enumerating 丁寧語+語尾 pairs one by one - Recognise negation variants (ねえ, かもしれん, 小せえ, 〜くて) and 連用形名詞 as verbs by widening the stem tables and the E/A/U/O-row mappings https://github.com/koteitan/zundamstr/commit/e9b5b300866c49af0fdb5af3373105d5524e19c6 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ vitorpamplona/amethyst ] Merge pull request #3845 from vitorpamplona/claude/explained-filter-test-warnings-clpcv8 Test: Type ExplainedFilter.copy() result as base Filter https://github.com/vitorpamplona/amethyst/commit/7922f9a4d1c99543df6cd31ebaf132465d5c836d npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ saiy2k/nostr-components ] Pre-publish hardening: social proof, a11y, packaging, X-fetch (#104) * Stop publishing insecure disabled-component APIs via zap imports and release artifacts. Move normalizeURL into common, exclude comment/dm/live-chat from dts, and omit sourcemap sources/maps from the npm package so private-key helpers cannot leak through the release graph. * Harden social proof and dialog a11y before publish. - Validate zap receipts per NIP-57 Appendix F; fail closed without LNURL nostrPubkey - Net like counts by pubkey (latest reaction wins) to stop spam inflation https://github.com/saiy2k/nostr-components/commit/7da3b43c1eda80ec960f78f26b66399b042223b3 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Bitflash-sh/bitflash ] wallet: walk the chain for coins a key owns but the wallet never saw (#88) A transaction only entered the wallet when its block arrived over the network, so a key added afterwards was invisible: coins on the chain, private key in wallet.dat, balance zero. /importwallet has always ended that way -- it writes the keys and the money never shows up, which looks exactly like a failed import. ScanForWalletTransactions walks the main chain and hands every transaction that IsMine() to AddToWalletIfMine, the same two primitives the live path uses. Wired into /importwallet, and offered as /rescan. https://github.com/Bitflash-sh/bitflash/commit/0c80afca9b0e2145c905c1b6d4bd8d1304fbaa5b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ vitorpamplona/amethyst ] Merge pull request #3844 from vitorpamplona/claude/code-quality-class-decoupling-rrt199 refactor: decouple LocalCache and Account god classes (behavior-preserving) https://github.com/vitorpamplona/amethyst/commit/31c3eaf2b34e565b815da57bcca9d71ccf6a92ec npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/keep-android ] Release v1.2.0 and re-pin keep to b06b61f (#471) * Release v1.2.0 and re-pin keep to b06b61f * Add v1.2.0 release changelogs for all locales https://github.com/privkeyio/keep-android/commit/a1b5e39da78c9e60e49368f894cc2f13db0fd2ae npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ protolayer-io/choke ] Merge pull request #162 from protolayer-io/feat/home-match-share feat: share a match from the home feed https://github.com/protolayer-io/choke/commit/ddee43b8037d1a46e4466592a1fef8306949be99 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/wisp ] Verify the Zig toolchain checksum and pin noz by commit (#162) https://github.com/privkeyio/wisp/commit/d998a6a5b6a426e165e5818a9afdd114d76ddb47 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/libnostr-z ] Pin CI actions by commit and check Zig dependency pins (#136) * Pin CI actions by commit and check Zig dependency pins * Account for every dependency entry and drop the bash 4 dependency https://github.com/privkeyio/libnostr-z/commit/bcead3c865f99429cbda869e0081b0757a642ef9 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ protolayer-io/choke ] Merge pull request #158 from protolayer-io/refactor/relay-probe-rust refactor: move the Settings relay probe into the Rust crate https://github.com/protolayer-io/choke/commit/7ed22bd0aa105e67bc387924b42c385cd1d786f2 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ steve02081504/fount ] Add JSON editor aria labels, aria-ignore issue checks, and test hub (#272) Co-authored-by: Taromati2 <[email protected] > https://github.com/steve02081504/fount/commit/ca26e214069c608c30f28488a021f118fc312db4 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ haruki7049/nostr-unko-posting-bot ] Empty commit to run CI https://github.com/haruki7049/nostr-unko-posting-bot/commit/8329750ef5b8705f9e64ab74b44bf251dbdb10be npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ permissionlesstech/bitchat ] Keyboard navigation for @-mention suggestions (#1542) * Tab and arrow keys for mention autocomplete Highlight the selected suggestion and let Tab accept it. Up/down move the selection when the mention panel is open; Tab otherwise still cycles focus. Co-authored-by: Cursor <[email protected] > https://github.com/permissionlesstech/bitchat/commit/1f59e814f90c3f489f48d68262cb1bf640bf6181 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ imattau/polypack ] build: coordinated version bump — 2.4.7 across the whole stack Patch release for the new polypack-graph crate (a pure-Rust port of PolyGraph's public API on polypack-core) and the clippy fixes that were blocking CI. Nothing changed on the TS/native/Python side this round, but versions are bumped in lockstep per this repo's convention. Co-Authored-By: Claude Sonnet 5 <[email protected] > https://github.com/imattau/polypack/commit/87c5b41f9cca46651409b9d1983f24f15d0642ec npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Lokuyow/ehagaki ] Optimize local post history deletion for single-pubkey data https://github.com/Lokuyow/ehagaki/commit/41eb319ad8371d717e0b46d9e4abb058cf65a373 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ WoompaLoompa/vendure-clink ] v0.3.0: rewrite BOLT11 decoder, add network/expiry validation and SSRF relay protection - Rewrite decodeBolt11 with proper bech32 HRP/separator parsing (extractPaymentHashFromBolt11/extractTimestampFromBolt11 now work on valid invoices; verified against the official BOLT11 test vector) - Add extractNetworkFromBolt11, extractExpiryFromBolt11 - Add network config option ('mainnet'|'testnet'|'regtest', default mainnet) and validate invoices in both webhook and relay payment paths - Reject expired invoices in webhook and relay paths - Add isAllowedRelayUrl/filterAllowedRelayUrls SSRF protection applied to https://github.com/WoompaLoompa/vendure-clink/commit/2fe734aa05f41a137481109b17847d46e7692573