First half of #3094, which was parked twice: the check stayed red, then a run ended with no pull.
Done:
[ ] When a forge is spawned, the size chosen in src/spawn/plan.ts (small when none was chosen) is stored on its ledger row and written to the child's parent.json as size.
[ ] A ledger row from before this change, which has no size, reads as small. Make the migration additive: add a column with a default, and leave old rows alone.
[ ] Before you push, run git grep -n "parent.json" test/ and update every test that pins the exact key set of parent.json or the ledger row. Name each one in the pull. These tests are the likely reason the first try stayed red.
[ ] test/spawn-sizes.test.ts covers a spawn with size: "large", a spawn with no size (stored as small), and an old row with no size (read as small).
[ ] bun x tsc --noEmit and bun test test/spawn*.test.ts pass.
Out of scope: the API list, MCP, and every page (src/web/ui.ts, src/web/pages/new-forge.ts).
Files: src/actions/spawn.ts, the ledger module it writes to, src/spawn/first-boot.ts or wherever parent.json is written, test/spawn-sizes.test.ts.
First half of #3094, which was parked twice: the check stayed red, then a run ended with no pull.
Done:
src/spawn/plan.ts(smallwhen none was chosen) is stored on its ledger row and written to the child'sparent.jsonassize.small. Make the migration additive: add a column with a default, and leave old rows alone.git grep -n "parent.json" test/and update every test that pins the exact key set ofparent.jsonor the ledger row. Name each one in the pull. These tests are the likely reason the first try stayed red.test/spawn-sizes.test.tscovers a spawn withsize: "large", a spawn with no size (stored assmall), and an old row with no size (read assmall).bun x tsc --noEmitandbun test test/spawn*.test.tspass.Out of scope: the API list, MCP, and every page (
src/web/ui.ts,src/web/pages/new-forge.ts). Files: src/actions/spawn.ts, the ledger module it writes to, src/spawn/first-boot.ts or wherever parent.json is written, test/spawn-sizes.test.ts.