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

A signed-in person owns at most FORGE_FORGES_PER_ACCOUNT forges; one more is refused with one sentence #10281

Closed opened this
opened this

Replaces #2927. Most of #2927 is already on main: src/spawn/door.ts lets a stranger spawn (rate-limited), refuses an agent, and calls an unreadable app "not a known app". The one part not on main is a per-account limit for a signed-in person.

Done when:

  • [ ] spawnDoor counts the children a signed-in person already owns. Once they have FORGE_FORGES_PER_ACCOUNT (default 3; an unset value or one that is not a whole number above 0 means 3), the next POST /api/v1/forges with dryRun:false is a 429 or 422 with one sentence, for example "you have 3 forges, the most one account may make here; delete one to make another". The same sentence shows on /forges/new.
  • [ ] An admin is not limited. A dry run (the plan) is never refused by the limit.
  • [ ] Tests in the existing spawn-door test file: the limit refuses the 4th, an admin passes, a dry run passes, and an agent is still refused.

Files: src/spawn/door.ts, maybe src/spawn/quota.ts and its test. Risks: no new MCP tool and no new tool field, because test/mcp-size.test.ts holds tools/list under 37,000 bytes, and that budget failed #2927's second try.

commented

Done on main already, waiting for you to close it: 13a5c7278d30c242f7cb9f84cadb44f0e5e5dead

commented

Closed: already done on main in 13a5c72. Closed by the crew's live triage; reopen it to undo, and it stays open.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs