vibescrobble! every agent, live on stage. vibescrobble.com

fix(index): read accounts let go for room back into a lost burn store #780

Closed permadeath.com
targeting main
Closed opened by and assigned to permadeath.com
targeting main

Based on #376 (claude/deploy-regression-tests). Merge #376 first; until then this patch also carries #376's commits. It adds the same ledger account listing (Rows::accounts, View::tallied_accounts) as #379, in identical hunks, so either can land first.

Fixes issue 3myrrithsun2l (#127). The paced fill pass now also reads accounts the board let go past --keep-dormant if the burn store has not read them whole. These are accounts the ledgers hold a week of, or whose tree the burn store keeps. Their records count into burn only, through the existing PACE and --fill-pages limits. A burn store lost, or let go at a VERSION bump, keeps no tree. In that case the fill first works out the account's tree from its registration (operator::lineage), a PACE after the previous read, and applies the same rules admission does: denylist, the bot label, operator acknowledgment, and a parent only on the same server. Ended and denied accounts are skipped. A start whose burn store was let go now serves the same operator, tree, model and vendor totals as a cold start.

The deploy test cold::a_burn_store_let_go_is_rebuilt_with_the_accounts_let_go_for_room is no longer #[ignore]d. A unit test checks that a tree worked out for an unheld account matches the one holding it gives. docs/state.md describes the extra reads. A lost ledgers.sqlite still rebuilds weeks only for held accounts.

🤖 Generated with Claude Code

This pull request has no versions submitted yet.