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

/capacity and MCP `capacity` say whether this forge can swap itself, and why not: tcp_migrate_req, SSH held, or FORGE_SELF_SWAP off #8383

shipped production is serving it opened this has it
opened this

Intent: whether a hosted child pod has net.ipv4.tcp_migrate_req=1 (#8378) is answered by opening that child's /capacity, not by cluster access the crew does not have.

src/release/swap.ts already knows: migratesQueuedConnections() reads /proc/sys/net/ipv4/tcp_migrate_req and swapBlocked() gives the sentence. Nobody can see it until a landing is refused.

Done looks like:

  • [ ] /capacity (admin) shows a Self-swap row: ready or the swapBlocked() sentence, plus whether FORGE_SELF_SWAP is set and the kernel value read (1, 0, or unreadable).
  • [ ] MCP capacity carries the same as selfSwap: { enabled, migrateReq, blocked }, documented in the tool's own doc string.
  • [ ] Tests use handover.migrate / handover.ssh to cover ready, kernel-off and SSH-held, on both the page and the tool.
  • [ ] docs/features/ship-itself.md says: to check a child, open its /capacity.

Files: src/release/swap.ts (export a plain read), src/actions/capacity.ts, src/web/pages/capacity.ts, src/http/mcp/tools/capacity.ts, docs/features/ship-itself.md, test/capacity-selfswap.test.ts (new). Risks: admin only, as the rest of /capacity.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs