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
nprofile1qqs8l6lz5kd2sfhc7cehksgpjw024jp06nnv5heu0w838jsr45n090cpp4mhxue69uhkummn9ekx7mqggf9a5
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 [ berm-protocol/berm ] Review the dual-chain build spec: math verified, Solana half blocked Reviewed BERM_DUAL_CHAIN_SIMPLIFIED_MECHANICS_BUILD_SPEC_20260804_R1 against the live API, the Fee Share V2 IDL, and the Robinhood ABIs at bagsfm/bags-idl. VERIFIED RATHER THAN ASSUMED. The cumulative range math is exact through TWO levels of flooring — cohort pools partition R, slots partition each pool. 3,000 revenue values across all 450 slots, zero mismatches, zero dust at either level. One program ID owning both authority PDAs is the https://github.com/berm-protocol/berm/commit/3a276e7100f1c82b52f1d3b8be364993ba68bb86 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/website ] Refresh contributions listing and brand logo (#38) * Split Lightning into its own contributions category and add Rust Bitcoin entries * Move bosun to Apps & Tools, expand Sonar to six PRs, keep Zeus under Bitcoin Wallets * Move DTails from Bitcoin Infrastructure to Developer Tools * Refresh brand: crisp SVG logo with corrected Latin tagline, brand assets folder, proper app icons https://github.com/privkeyio/website/commit/db81a578ee78b1c8d09a09e87e950759ebb39fee npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Synvya/reservation-protocol ] Merge pull request #14 from Synvya/alejandro-dev NIP-RP: optional asset-reference `a` tag on kind:9901 https://github.com/Synvya/reservation-protocol/commit/03ad4283d6dd6f37484571d67f78069b87ba8014 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] notes: an import must never wait forever; and stop deleting profile aliases THE HANG. publish() has an 8s timeout but a blob upload is a bare fetch(), and a fetch that stalls — a dropped connection the OS hasn't given up on, a proxy holding the socket — never settles. One of those anywhere in an import freezes the whole run with the progress bar stuck, and Stop is useless because the cancel flag is only read BETWEEN items. Reported as "I don't think it will ever stop", at 114/114 notes, which is the 8.5 MB note whose oversized body is offloaded to a blob — the single largest upload in the run. https://github.com/loblawbob873-svg/posterchanai/commit/9b65c4892cffd012b2f938bc5639cef7d2b32224 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ MonumentalSystems/blossom-rs ] Merge pull request #38 from MonumentalSystems/agent/fix-rustsec-ci-permissions ci: fix RustSec reporting permissions and Node runtime https://github.com/MonumentalSystems/blossom-rs/commit/099375570b101e1cdd780f6a2da19454fd601003 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/keep-esp32 ] Pin libnostr-c to v0.2.1 (#161) * Pin libnostr-c to v0.2.1 * Record the component lock the new libnostr-c pin resolves to https://github.com/privkeyio/keep-esp32/commit/f195c74de3ab4fedd34e6f05ec56d07d1c580297 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] notes: notes bigger than one relay message, and a UI worth using THE 3 FAILING NOTES. A relay message is capped at 512 KB and NIP-44 + base64 expands plaintext by ~1.37x, so anything past roughly 380 KB of JSON cannot be published as one event -- and a real notebook has such notes. This library had a 8,565,945-byte one ("Receipts 2023", 16x the limit) plus two more over it. They failed to save with nothing to explain why, on every import. An oversized BODY is now offloaded to an encrypted Blossom blob with the event keeping a pointer -- the same spill FilesIdx already does past its inline limit. https://github.com/loblawbob873-svg/posterchanai/commit/0df85edfbd8736a1d4e420712b7cb43f8be3ce8d npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zig-nostr/plaza ] The store gets room to grow into (#123) LMDB never grows past its map size, and the library's default is 1 GiB. There is no pruning here and no retention window: the store only grows, at a measured 2.4 MB a day on a development machine with a modest follow set and the app not even running continuously. A reader on eight relays all day with a real follow list, taking kind:6 and kind:7 engagement as well, gets there materially faster. Arriving is silent, and it is the reader's own notes that pay. `plazaIngest` is `catch {}` at the write of a note this app just signed, deliberately, so a https://github.com/zig-nostr/plaza/commit/cd2ed66ea9e0f2fc3ea48583e19349c90356e630 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Routstr/routstr-core ] Merge pull request #636 from Routstr/ppq-auto-topup ppq-auto-topup https://github.com/Routstr/routstr-core/commit/c971862ac6d33305bd2a450e73b384878eb704f6 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ sonivalabs/hermes-buzz-gateway ] docs: HF-downloader — use modern hf CLI; document deprecated huggingface-cli + sandbox-PATH gotcha (T12) Signed-off-by: Agent <agent@local> https://github.com/sonivalabs/hermes-buzz-gateway/commit/e54748b93198fd2b8ed699004e47eaf00d523a1c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ PlebeianApp/market ] fix: prevent AI_GUARDRAILS crash + profile unload after tab backgrounding (#1207) https://github.com/PlebeianApp/market/commit/59d8862cb0c2aad916b142de084d6ef512ec54a9 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ vitorpamplona/amethyst ] Merge pull request #3851 from vitorpamplona/fix/relay-subscription-lock-convoy fix(relay): stripe the subscription-state lock per relay to end an ANR convoy https://github.com/vitorpamplona/amethyst/commit/ba78eb599ede242a572603945a422d29f62ba720 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ berm-protocol/berm ] Adopt cumulative weight ranges into the minimum contract A second review proposed committing a weight RANGE per leaf rather than a fixed amount, with entitlement floor(R*end/W) - floor(R*start/W). It is better than what I specced, and it improves v1 rather than only R2. Contiguous ranges telescope, so payouts sum to exactly R for any revenue and any weights — no rounding dust, no dust recipient to argue about. Naive per-share flooring loses a unit per claimant. Verified over 400 randomised partitions, zero mismatches. https://github.com/berm-protocol/berm/commit/01bb617c461234887c0e8995f584bb91db283071 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ naturallaw777/Sovran_SystemsOS ] Nixpkgs Upddate https://github.com/naturallaw777/Sovran_SystemsOS/commit/a343afffaacaa6ab659d5867d61ab69450ff49ca npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] notes: private encrypted note taking that survives every auto-cleaner One kind-30078 event per note (d=pcai:note:<id>, folders pcai:notefolder:<id>, both tagged l=pcai-notes), NIP-44-encrypted to the user's own key. Per note rather than one document like Budget: a document is a read-modify-write of the whole dataset per save, so two devices editing different notes lose one, and a Joplin library does not fit in one event. No index doc anywhere. Three auto-cleaners would each have deleted the whole feature, silently: https://github.com/loblawbob873-svg/posterchanai/commit/b59b5fa88b565182078944fcb0cd78ab07f362c9 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ sonivalabs/hermes-buzz-gateway ] security: hf_ token scan pattern; honest systemd hardening; precise allow-list semantics Signed-off-by: Agent <agent@local> https://github.com/sonivalabs/hermes-buzz-gateway/commit/fc80ac8ca921d9190d0004f240809872ca1e06cc npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zig-nostr/plaza ] Nothing of the account that left survives into the one that arrives (#118) Four things outlived a sign-out, and each of them ended with one account's state acting under the next account's key. THE LIKE TABLE was keyed by note id alone. A note id is the same under every account, nothing ever cleared the table, and the heart renders from it. So a note liked as one account showed a filled red heart to the next account signed in on the same machine, who had never touched it, and their first press took the UN-like branch: Plaza signed a kind:5 under THEIR key naming a reaction the https://github.com/zig-nostr/plaza/commit/56639a6f5373965fabddb7d55c23e20bc28a8f09 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Vic-Nas/hailstone ] Consensus: exhaustive gapless Collatz sweep, replacing random per-block ranges Previously each block's search range started at an independent random point (derived from hashPrevBlock + a magnitude that climbed on a fixed chain-work budget). That meant coverage of any given magnitude window was never exhaustive and never converged toward exhaustive -- each block covered a vanishing fraction of an ever-doubling window, with no mechanism to track what had already been checked. It also let range_count (and therefore most of a block's real difficulty) be known several blocks in advance, since it only changed at fixed https://github.com/Vic-Nas/hailstone/commit/f9877c73990a4d816b8edd1734bf28f3b92cc7a1 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/buzz-relay-startos ] Merge pull request #12 from privkeyio/feature/drift-watch Add upstream drift-watch workflow for pinned relay digest https://github.com/privkeyio/buzz-relay-startos/commit/b70457920a3176cbbdb5e894ba51c046ed703730 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ MonumentalSystems/blossom-rs ] Merge pull request #37 from MonumentalSystems/agent/fix-gitleaks-installer ci: install Gitleaks for self-hosted runner platform https://github.com/MonumentalSystems/blossom-rs/commit/464e793da671e37fd1c019cc4325ebb5c2209dd4 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] test(nr-app): establish Jest coverage and PR overview (#284) * test(nr-app): establish comprehensive Jest coverage * ci(nr-app): publish Jest coverage overview --------- Co-authored-by: K <[email protected] > https://github.com/Trustroots/nostroots/commit/9643d3f458824faa66a69ffc34a929cb57a742f2 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Routstr/routstr-core ] Merge pull request #631 from Routstr/fix/xcashu-cost-breakdown-port fix: expose cost breakdown in paid responses https://github.com/Routstr/routstr-core/commit/47d0d87a88e97aa3b3e9b0976cdffc5045a0b103 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Vic-Nas/hailstone ] Fix genesis crash, wallet encryption, and block-index persistence Three real bugs found while auditing after the last release: - WalletGetEncryptionInfo() opened wallet.dat read-only with no DB_CREATE flag. On a brand new node that file doesn't exist yet, and Berkeley DB reports that by throwing DbException straight out of Db::open -- uncaught here, unlike the LoadBlockIndex() call right before it, so the whole process aborted right after genesis mining succeeded. https://github.com/Vic-Nas/hailstone/commit/92832bf9dabb44bedf46661babeff6d6ff814439 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ KotlinGeekDev/Rhodium ] Initialize error output buffer for bootIOSSimulator. https://github.com/KotlinGeekDev/Rhodium/commit/bc72612ccb1cabef8914ee936582e099c7fbe347 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/gopherkind ] Merge pull request #18 from forgesworn/ops/reference-https docs: publish secure reference bridge https://github.com/forgesworn/gopherkind/commit/e8520b0ba4e6307f2adaa979816e5cc4c5db28cf npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] chore(nr-app): refresh transitive packages (#274) * chore(nr-app): refresh transitive packages Move pnpm workspace settings to the supported root configuration, apply range-qualified transitive package floors, and regenerate the lockfile from the existing resolution baseline. * ci: use repository-pinned pnpm Set up pnpm directly from the repository packageManager declaration so workflow runs cannot reuse an incompatible cached binary. https://github.com/Trustroots/nostroots/commit/22612432afefb97682028c43a6f6ec989d18b3c4 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/keep-esp32 ] Release v0.2.2 (#159) https://github.com/privkeyio/keep-esp32/commit/47336e853c465b91c31d25b79458d7ea3200a1b5 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] offline: make the app usable with no network, on phone and desktop The client already had the hard parts — an IndexedDB event store, a local filter engine, a media cache — but every seam failed OUTWARD, toward the network. sw.js: the precache could never answer a single request. The page asks for app.js?v=<mtime> while SHELL lists bare paths, and Cache.match is exact-URL, so offline only ever worked because SWR had separately stored the versioned URL on an earlier online visit. Match exact-first, ignoreSearch only after the network fails (loose-first would serve the previous build after a UI-only deploy, which https://github.com/loblawbob873-svg/posterchanai/commit/e9b90a43d4881c2706cdbbc4958ea92ebc12e797 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ geyserfund/geyser-app ] chore(release): prepare v0.50.3 https://github.com/geyserfund/geyser-app/commit/47acbf45933735b322f4c0c8130175de39878201 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Vic-Nas/hailstone ] readme data update https://github.com/Vic-Nas/hailstone/commit/6a3aa8af1e9eebd05083bb68e552f75d3ceb46b6 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/gopherkind ] fix: fit HTTP frontend to mobile screens (#14) Co-authored-by: TheCryptoDonkey <[email protected] > https://github.com/forgesworn/gopherkind/commit/d2eb1ec6ea85a7f69be1efbb7789a9c79ed9e6ae npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Bitflash-sh/bitflash ] gui: name the icon resource GLFW_ICON so the window actually wears it (#126) The right icon has been in the exe the whole time. GLFW never found it. GLFW registers its own window class and fills hIcon with LoadImageW(module, L"GLFW_ICON", ...), falling back to IDI_APPLICATION when that exact resource name is missing. Ours was named "bitflash", so the lookup failed and every window this program has opened wore the generic Windows icon -- in the title bar and in the taskbar -- while the correct artwork sat unused a few kilobytes away. https://github.com/Bitflash-sh/bitflash/commit/6beddf1ef4df24e735e4c2c123453e6ce99c5460 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ satoshidude/zapclub.io ] radio: reconcile enabled-but-undriven streams; watchdog: exponential restart backoff Root cause of today's 15-min relay restart loop: after a restart, a club with no active DJs (5-min stage window) is never entered by driveClub, so its enabled radio neither streams nor pauses — the station sits enabled/unpaused with nothing feeding it, the watchdog reads 0 bytes forever and restarts the relay every cooldown period without ever healing anything. - conductor tick now reconciles: enabled+unpaused streams whose club has no active DJs, no auto-DJ and no resumed playback state are paused (onNoDJs, https://github.com/satoshidude/zapclub.io/commit/bdaccd707af99ebcaf6264d0cd4d3ba1cf935caf npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ plotsklapps/GYMPLY ] refactor: replace FontAwesome with Material Icons in IconUtils and update modals - Refactor `IconUtils` to expose `IconData` constants using standard Material `Icons` - Replace FontAwesome icon usage across all modal sheets (`about_modal`, `bodymetrics_modal`, `workoutsummary_modal`, etc.) with `IconUtils` and Material `Icons` - Update UI components to use native `IconData` references with `Icon` widgets https://github.com/plotsklapps/GYMPLY/commit/1ba79e878ab0e841642afad72c86f6ea50b5d6ad npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ protolayer-io/choke ] Merge pull request #170 from protolayer-io/feat/announcements-5-tool feat: refuse to publish an announcement the app would drop https://github.com/protolayer-io/choke/commit/5965623c367dae6a4d56989df5c29d9a07220169 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ betonetojp/nokakoi ] feat(georelays,mute,omochat): GeoRelaysキャッシュ手動更新の追加とミュート件数自動更新・各種改善 - 表示設定のキャッシュクリアおよびomochat設定モーダルでのGeoRelays手動更新機能を追加 - omochatタブの初期表示(history)取得を直近5分前以降のイベントに制限 - ミュートリスト編集モーダルでスマホ等の折り返し時に単語が右揃えになる表示崩れを修正 - プロフィール操作や編集モーダル保存時に表示設定内のミュート件数が自動更新されるよう修正 https://github.com/betonetojp/nokakoi/commit/66c59e26677d1d2e27cb37273273febe7df9688e npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] feat(vibe): add Food Circle sharing app Add a map-first Food Circle web app for free-food pop-ups, community fridges, restaurants, dumpster spots, and food requests. Support Plus Code privacy levels with optional matching pins, local persistence, filters, expirations, and Nostroots-compatible kind 30397/30398 synchronization. Add the shared #foodsharing Nostr chat, Squatbridge-style site header and identity controls, hub card, focused location/event/chat tests, and the Food Circle OpenSpec capability. https://github.com/Trustroots/nostroots/commit/7e3842e041e145f62bbedc697e84721dfe11dd00 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/keep-esp32 ] Give the drift job a token and stop hiding why the compare failed (#157) https://github.com/privkeyio/keep-esp32/commit/1b30d27148ed9bff04d0448370f17ab5734920b3 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Marc26z/FunWithFreedomTech ] A Screenshot from the Citizen Four Trailor used under fair use to write about threat models. https://github.com/Marc26z/FunWithFreedomTech/commit/a7eb44ea31cfcfbff5e139d9f63e8b6dde169b6c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ v0l/dtan ] chore: bump https://github.com/v0l/dtan/commit/cbfbf44eda845ccfd605f1c1b014cfd6e54f468f npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] fix: set environment for ota updates https://github.com/Trustroots/nostroots/commit/1bf12335e9b4cb667cf54478eacaea3f903ae50b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ ClarkQAQ/nostr ] style(relay): ignore websocket write errors in handler https://github.com/ClarkQAQ/nostr/commit/06db4a0357a2a0f0c65792057eeea7349044dcc1 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ riccardobl/nostrduino ] Add subscriptions getter and resubscribe on connection https://github.com/riccardobl/nostrduino/commit/a376b4d67c03912af010bc1a487ff107e1383dea npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ akiomik/nostui ] Merge pull request #497 from akiomik/dependabot/cargo/tokio-util-0.7.19 build(deps): bump tokio-util from 0.7.18 to 0.7.19 https://github.com/akiomik/nostui/commit/e331bf5d0585db66b4cfad6106ed8429b3a2f37c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ berm-protocol/berm ] Fix four live bugs the R1 review found; mark the spec HOLD An adversarial review of DISTRIBUTOR-SPEC came back HOLD. Five CRITICAL findings are spec-level and remain open. Four were bugs in shipped code. BDR-013b — equal claimedAt let relay arrival order pick the payout address. Relays return events in arbitrary order, so two honest parties fetching identical data could compute different roots and each be certain the other was lying. That is the one property the whole design rests on. Ties now break on the address: a total order over the data itself. https://github.com/berm-protocol/berm/commit/2ba0d3b07d4bca42af922d6145bf5c3fc7f8eceb npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ steve02081504/fount ] Fix Start-WTfountCmd splat bug and propagate CLI errors (#276) https://github.com/steve02081504/fount/commit/654270104e98f0a88de03ba198b1ce386e280e85 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ ZeusLN/zeus ] fix(nwc): serialize pay_invoice handling to prevent shared-store races (#4303) * fix(nwc): serialize pay_invoice handling to prevent shared-store races The lightning and cashu pay_invoice handlers read and mutate shared singleton store state across awaits: the cashu path decodes into CashuStore (payReq, meltQuote) and re-reads that state after further awaits inside payLnInvoiceFromEcash; the lightning path does reset() then sendPayment() then waits on the same TransactionsStore the UI uses. Relay events dispatch handlers concurrently with no queue, so https://github.com/ZeusLN/zeus/commit/15f177d13146d9760081dd2842471f8fbbcaec75 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ v0l/nostrsearch ] Animate the scan bar on the compositor, not the paint path The loader was 48 elements each animating background colour and scaleY. Colour is a paint property: every frame repainted and re-uploaded all 48, forever, on a page whose entire job is to say "please wait". It burned about half a GPU. Transform and opacity are the only properties a browser animates without repainting, so now one element moves and it moves by transform alone: a gradient band translating across the strip. The ticks it travels over are a repeating gradient painted once, which also removes the 48 DOM nodes and the https://github.com/v0l/nostrsearch/commit/5b0dcfff0ccc1c1d2c717fe5f6017cd0e80977d2 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ riccardobl/nostrduino ] Fix CI runner tool assumptions https://github.com/riccardobl/nostrduino/commit/886ad85e13f922b4dbcb9522419a427bf064ff0b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ CodyTseng/jumble ] fix(download): remove deb auto-update warning https://github.com/CodyTseng/jumble/commit/1f5a3bd18d2280f507a8152211950e66bd9c2cbd npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ plotsklapps/GYMPLY ] refactor: replace font_awesome_flutter with Material Icons and updated IconUtils - Remove `font_awesome_flutter` package dependency from `pubspec.yaml` - Refactor `IconUtils` into a `StatelessWidget` wrapping standard Flutter Material `Icon` with default size and optional color - Update search modal components, choice chips, and exercise search results to use `IconUtils` and Material `Icons` - Refined UI components, including `FittedBox` scaling for body metrics, updated social share card styling, and exercise grid icon/typography adjustments. - Tweaked `FlexColorScheme` settings, including `inkSparkle` splash type and seeded color styles. - Updated versioning in `pubspec.yaml` and `version.json`. https://github.com/plotsklapps/GYMPLY/commit/ef116caff306f67516c65b9367b12e859386a0f6 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] docs: document chmac's GitHub writing style in AGENTS.md https://github.com/Trustroots/nostroots/commit/5464fe384785aa17bc933ad582f2d0c1b98603d5 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ privkeyio/keep-esp32 ] Distinguish a pin ahead of a release from one behind it (#156) * Distinguish a pin ahead of a release from one behind it * Report an identical pin as identical https://github.com/privkeyio/keep-esp32/commit/85948e3363c0833e8bbc3a7e436a0f9227e2a4e3 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ satoshidude/jointfactory.io ] Show the factory charge against its own capacity Upgrading the courier on diskbuster made the factory card show more, and the account data says the factory was never touched: capacity 100, cost 400, zero upgrades. What changed is what reaches it — deliveries went from 20 to 40, so each run processes twice as much of the same unchanged factory. The card did not make that distinguishable. "Processing 40" reads as a factory statistic, and the ring made it worse by swapping between the batch size when idle and the current charge when running, so the same big number meant two https://github.com/satoshidude/jointfactory.io/commit/676b93cddea5687507d0db1dc25dca9b0351535d npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ loblawbob873-svg/posterchanai ] deploy: a git-hook change must not restart every unit git_hooks/ was unmapped in deploy_targets, which means "could affect anything" and therefore ALL seven units -- so the previous commit, which edited one log message in post_receive.py, restarted the app, relay, worker, media, tor, proxy and git on BOTH nodes and dropped every connected Nostr client. That is exactly the outage the role split removed, caused by the tooling that exists to prevent it (the same trap sync.sh and the Dockerfiles were already fixed for). Nothing loads git_hooks/: install_hooks writes a shell shim into each bare repo https://github.com/loblawbob873-svg/posterchanai/commit/d61a2407abb3112259df48e07d5f9c4b4c615424 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ dtonon/fevela ] Fix first-level replies filter for kind:1 threads and NIP-22 comments https://github.com/dtonon/fevela/commit/8ca0fb84410fa15510d8e323be6aaa1b2597b37b npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ berm-protocol/berm ] bags: the campaign — schedule in, root out Batch membership comes from OBSERVATION, not assertion. At each batch close you publish a snapshot; batch N is snapshot N minus snapshot N-1. Subscribers never un-subscribe, so snapshots are supersets and the differences are the batches. Reading created_at instead would be free backdating — the same defect dispute.ts and subscribe.ts already refuse. Now you land in the batch where you were first SEEN, and nothing you sign changes what was already https://github.com/berm-protocol/berm/commit/213ded4432c90c859e53f6b4261cee58f2e8d2cd npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zig-nostr/plaza ] Waiting looks like waiting, and failing looks like failing (#113) Two states that both drew the same thing: nothing much. A PICTURE THAT WILL NOT LOAD. The view asked one question, whether the picture was loaded, so every state that is not loaded drew the same striped waiting frame. A 404 waited in it forever. It says so now, in the same box at the same height (the row is priced for it, and a picture failing must not make the feed jump), with the host it came from, because "this one host is not answering" is usually the whole story. Pressing opens the original, which is the one thing https://github.com/zig-nostr/plaza/commit/69ad337569ba68b79fbf78fd9e9e0ea8ee009a13 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ haruki7049/nostr-unko-posting-bot ] Empty commit to run CI https://github.com/haruki7049/nostr-unko-posting-bot/commit/feea9067d354beb34cc517fcaff82b774a3d92dd npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/gopherkind ] docs: record live reference revision (#13) Co-authored-by: TheCryptoDonkey <[email protected] > https://github.com/forgesworn/gopherkind/commit/869f08cbb9b15a85ac64d40c0464f6780adf9444 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ satoshidude/zapclub.io ] conductor: change-only queue logging — stop flooding the journal every tick The per-tick queue state line (one per DJ per club every ~2.5 s) made up the bulk of 1.7 GB journald usage and slowed every log search. It now logs only when the fingerprint (tracks/active/created/relay) actually changes. Server-side (not in repo): backup script now excludes the ephemeral trackcache (daily tarball 95 MB → 9.7 MB). Co-Authored-By: Claude Fable 5 <[email protected] > https://github.com/satoshidude/zapclub.io/commit/b3bdb7328e7bacf76813ffbbbfcd0a4640738c84 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ steve02081504/fount ] path CLI: modularize fount.ps1/sh, add smoke CI, unify Hub empty states (#275) Co-authored-by: Taromati2 <[email protected] > https://github.com/steve02081504/fount/commit/b2ac57a7c5a8d7e656a00523980850b127c5ae13 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ plotsklapps/GYMPLY ] Updated dependencies in pubspec.yaml; Fixed dart linter (80 chars max) issues. https://github.com/plotsklapps/GYMPLY/commit/3941d707e6cebb40e64c1d1d108d9416cbb4cdff npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Vic-Nas/hailstone ] Reorder Dockerfile COPY steps to work around a Railway build-cache failure Railway's builder failed with 'failed to compute cache key: failed to calculate checksum of ref ...: /relay/entrypoint.sh: not found' -- the file is genuinely tracked in git and builds correctly locally (both before and after this change), so this looks like a stale/corrupted build-cache layer reference on Railway's side, not an actual missing file. Moved the entrypoint.sh COPY earlier in the runtime stage to change the layer sequence/hash, which should force Railway to build a fresh cache entry instead of reusing whatever broke. https://github.com/Vic-Nas/hailstone/commit/d58d05fab33701839eeea5ada45339d2357f6161 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ zig-nostr/plaza ] A note that could not be found is not written off forever (#112) The thread whose parent never loads is not a relay problem. I fetched that parent from the reader's own four relays with `nak` in under a second, while Plaza kept saying "The note this answers is not on your relays yet". The ancestor above a thread is asked for through the same machinery as a quoted note, and that machinery gave up after three tries. Permanently: nothing re-armed it, not a later round, not a reconnect, not reopening the thread. Three tries is nothing, and all three can land in the first seconds while the pool is https://github.com/zig-nostr/plaza/commit/96a6715e95feed7c91c0e3178c7bfd57794d8625 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ forgesworn/gopherkind ] Merge pull request #10 from forgesworn/codex/document-npm-trust-bootstrap Document the npm trusted-publisher handoff https://github.com/forgesworn/gopherkind/commit/482544925af1ce0db0736cbcd8a448aa668b7f8c npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ berm-protocol/berm ] bags: the distribution commitment One root anyone can rebuild. Fetch the same subscriptions from relays, run the same snapshot, build the same tree, compare. A mismatch means the published list is not what the relays support — checkable without anyone's cooperation, which is the whole point. Three attacks handled explicitly, because none of them is caught by testing that the happy path works: https://github.com/berm-protocol/berm/commit/050570e3dc958397f08c586d1a2571db88662145 npub10l479fv64qn03a3n0dqsryu74tyzl48xef0nc7u0z09q8tfx72ls7sv2ux nostr-summary [ Trustroots/nostroots ] test(nr-app): add Maestro E2E flows for onboarding (#277) Introduces the first E2E tooling for nr-app. Two Maestro flows cover the deterministic legacy-key onboarding branch: generating a new mnemonic, and importing a fixed test nsec then asserting the derived npub on the link screen. The import flow exercises SecureStore write, keystore read, bech32 derivation, Redux and render in one assertion. Both pass against a Release build (2/2). Adds testIDs to the onboarding screens and a testID passthrough on KeyInput so the flows select on stable ids rather than visible copy. https://github.com/Trustroots/nostroots/commit/b568a5018d6636a4f8fb08732b2ad3b22ee1de83 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