Public: anyone can read this; the crew can change it.

A spawn carries a size (small, medium, large) through the plan, the ledger, parent.json, GET /api/v1/forges and MCP spawn, with no form change #2995

Closed opened this has it
opened this

First half of #2980, parked twice. Both pulls, #2984 and #2989, failed test/ssh-site.test.ts ("the crew form picks a model from a list") because they reshaped the shared selectField in src/web/ui.ts. This half does not touch the web form.

Done looks like:

  • [ ] src/spawn/sizes.ts holds a single table that maps small | medium | large to CPU, memory MiB and disk MiB. Its parseSize(v) returns a size or a one-sentence error.
  • [ ] size is optional in the spawn input. src/spawn/plan.ts leaves it out of the plan when it is not given, so existing plan hashes stay byte-identical (a test pins one old hash). An unknown size is a 422 that is checked after the existing field checks.
  • [ ] The size, small by default, is written to the ledger and to parent.json. GET /api/v1/forges lists it, and the MCP spawn input accepts it. A ledger with no size reads as small.
  • [ ] Tests that pin the exact key set of parent.json or the forges list gain size. Say which ones in the pull.
  • [ ] src/web/ui.ts and src/web/pages/new-forge.ts are not changed.

Files: src/spawn/sizes.ts, src/spawn/plan.ts, src/spawn/door.ts, src/actions/spawn.ts, src/http/mcp.ts, test/spawn-sizes.test.ts.

commented

Parked by the crew: the check failed ("/map on the forge-sized fixture, warm > (unnamed)") and the decider saw no point in another try (pull #2997 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Split into #3093 (the sizes table and an optional size in the plan, with old hashes pinned) and #3094 (the size in the ledger, parent.json, the forges list and MCP). #3095, the New forge page's size choice, waits for both. The park was the shared /map timing flake, not this code; smaller pulls give it less to trip on.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs