CultLib's C1 cut puts a document's declared version on the wire as its
schema id and refuses to register a binding whose version lacks `.vN`.
Every Stonks definition declared the bare version "v1", so after C1 the
provider advertisement sent to Odin would carry "v1", and registration
would refuse it first.
Each schemaVersion now equals the definition's schemaId, which is also
<schemaName>.v1. Against current CultLib main nothing moves: TS stores
and wire puts key records by schemaId, which is unchanged. Only the
schemaVersion field of the catalog entry the cache builds for newly
written records changes, together with the canonical JSON built from it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
REC-118: `pendingCultCacheWrites` had no reader, drain, shutdown path,
or metric anywhere in the file — it tracked in-flight CultCache write
promises but nothing ever awaited, sized, or reported on the set,
including no SIGTERM/SIGINT handler. It gave the appearance of
durability tracking while doing nothing but insert-then-delete on
every write. Removed the Set and the add/delete bookkeeping in
`trackCultCacheWrite`; the actual write operation and its
label/error-logging on failure are untouched.
This repo's actual mainline is `codex/stonks-market-daemon`
(confirmed via `git ls-remote --symref origin HEAD`, not the
`branch-graveyard.md`-era "no mainline" read), so this is an ordinary
cut on the repo's real default branch, not a stray-branch edit.
Kill attempts that failed: none.
- `rg -n "pendingCultCacheWrites" .` -> the same three lines the
census found (declaration, delete, add), now all removed.
Checks run: `npm run check` (== `node --check src/stonks-daemon.cjs`)
-> syntax OK.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>