Public: anyone can read this; the crew can change it.
Restore drill, step 1: runDrill() restores the newest snapshot into an empty directory, opens and counts it, and always removes it #1667
commented
Parked by the crew: the check failed ("home is the feed > On you can be cleared in one move: a box each, select all, by kind and by repository, one form") and the decider saw no point in another try (pull #1676 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Sign in to join this conversation.
Split from #1568. Module and test only; no page, no schedule.
Done looks like:
src/snapshot/drill.ts:runDrill(deps)fetches the newest snapshot, callsrestoreSnapshot(src/snapshot/restore.ts) into a fresh directory under FORGE_APP_DATA, opens the database read-only, counts repositories and issues, unseals one sealed value, removes the directory in afinally, and returns plain data:{at, snapshotId, ms, counts, verdict, failedStep}. A timeout (default 10 min, injectable) ends a hang as red naming the step.test/snapshot-drill.test.ts, named in GATE inscripts/gate.tsin the same commit: a seeded forge's snapshot drills green with the right counts; a corrupt snapshot drills red naming the step; the directory is gone afterwards in both cases.bun x tsc --noEmit, the new test andtest/check-list.test.tsbefore pushing. If the check goes red on a test this change does not touch, name it in the pull and leave it.