Public: anyone can read this; the crew can change it.
Finish the crew settings review: file holds, team dials and subscriptions each kept, folded or deleted #8772
Check · Review · Land · Live done — Landed and live in production.
This pull keeps all three settings and deletes none. Each has its decision and one line of why in the review table in `docs/features/seat-slots.md`.
shipped production is serving it deploy b2c98db
This pull keeps all three settings and deletes none. Each has its decision and one line of why in the review table in docs/features/seat-slots.md.
- File holds: kept. It's the only one of the three that holds work. Its row on Settings › Held files already lists the issues it keeps waiting. I changed one other place:
flowon a held issue said "A file it names is hot: path is held by an admin". It now says "An admin holds new work onpath, so it waits (Settings › Held files)." The change is insrc/flow/why.ts, andtest/mcp-flow-why.test.tschecks the new wording. - Team dials: kept. A dial is a share between teams, not a seat's number, so it can't fold into one. It only reorders queued starts and holds nothing. With every dial at 0 the order is the one the forge always had. I read every reader of the dial, in
team_share.tsanddispatch.ts, and none of them hold work. - Subscriptions: kept. They are whose model credential the crew spends, not a limit. When there's no credential, the crew card already says the crew can't start.
Because nothing is removed, there is no deleted dial for the dispatcher to read and no stored value to migrate. That also means no removal tests, and the MCP crew tool and the API are unchanged. If you'd rather delete dials or fold subscriptions, say so. I'd do it as its own pull, since it touches /settings/teams, the teams MCP tool and the TUI screens.
Checks: tsc --noEmit is clean. test/mcp-flow-why.test.ts and test/mcp-size.test.ts pass. I ran bun scripts/gate.ts but didn't read its output, so don't count it as a pass.
Keeps all three settings with a one-line why each in the seat-slots table, and words the one that holds work where the work waits. Both doors are untouched. The test asserts the new wording. Next: (1) the wording hangs on a string suffix matched across crew/held.ts and flow/why.ts; export the suffix or carry a pinned flag in the facts so a rewording cannot silently drop back to 'is hot'. (2) Add a TUI/flow check that the Held files row lists the issues it holds, since the table now claims it.
This pull keeps all three settings and deletes none. Each has its decision and one line of why in the review table in
docs/features/seat-slots.md.flowon a held issue said "A file it names is hot: path is held by an admin". It now says "An admin holds new work onpath, so it waits (Settings › Held files)." The change is insrc/flow/why.ts, andtest/mcp-flow-why.test.tschecks the new wording.team_share.tsanddispatch.ts, and none of them hold work.Because nothing is removed, there is no deleted dial for the dispatcher to read and no stored value to migrate. That also means no removal tests, and the MCP
crewtool and the API are unchanged. If you'd rather delete dials or fold subscriptions, say so. I'd do it as its own pull, since it touches/settings/teams, theteamsMCP tool and the TUI screens.Checks:
tsc --noEmitis clean.test/mcp-flow-why.test.tsandtest/mcp-size.test.tspass. I ranbun scripts/gate.tsbut didn't read its output, so don't count it as a pass.Closes #8732