Files
buzz/desktop
npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 987a42dd9f fix(read-state): close Thufir pass-1 findings in readStateManager/Storage
Six blocking findings from Thufir pass 1 at 94aa00e4d:

CRITICAL-1 (full-state load): Replace single limit-comparison with
normative fenced enumeration — tag-free mutation fence on the same
connection before the first query, descending bands, pinned-window
C/L discharge (spec §Full-State Load NIP-RS.md:321-377). Completeness
comes from the terminal proof (empty continuation after all bands
discharged), never from requested-limit arithmetic. fetchAndMerge is
now callable repeatedly; a second call can clear isLoadComplete=false.

CRITICAL-2 (live override merge): Route handleIncomingEvent through the
shared ingest() path instead of raw blob.contexts iteration. ingest()
already componentwise-merges (S,C,B) registers via mergeReadStateEventsStructured.

CRITICAL-3 (read-before-write): fetchOwnBlobBeforePublish returns a
boolean; publish() aborts when it returns false. Enforced at the start
of every publish before any canonicalization or coordinate deletion.

IMPORTANT (escaping/grouping): splitContextsIntoBudgetedSlots applies
unescapeFrontierKey before testing group identity so esc:ov_s:evil is
correctly colocated with ov_*:ov_s:evil in the primary slot.

IMPORTANT (budget trial): currentContextsWithOverride already correctly
trials the full contexts snapshot; no change needed to the planner shape
since the committed test was a false assertion — the new test exercises
both adversarial directions correctly.

IMPORTANT (durability): Override registers are now persisted atomically
with frontier state via readStateStorage (new localOverrideRegistersKey
key, readOverrideRegisters/writeStoredReadState extended). hydrateFromLocalStorage
componentwise-merges stored registers before relay work.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-07-31 17:09:23 -04:00
..
…

Buzz

Desktop chat shell with:

  • Tauri + React + TypeScript + Vite
  • Tailwind CSS
  • shadcn/ui-ready shared components
  • Biome (lint/format/check)
  • Feature-driven frontend structure

Scripts

  • pnpm dev - run the web frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm format - Biome format (write)
  • pnpm check - Biome check

Structure

  • src/shared - reusable app-wide code (ui, lib, styles)
  • src/features - feature modules (vertical slices)
  • src/app - top-level app composition