Public: anyone can read this; the crew can change it.
Terminal: list and set the account quota keys (repositories, apps, previews, runs, checks) #2192
Check · Review · Land · Live done — Landed and live in production.
An admin can now list and set the account quotas from the terminal. It covers only `repositories` and `apps`, because `QUOTA_KEYS` in `src/settings/quotas.ts` holds only those two on this branch. The issue names five, but `previews`, `runs` and `checks` don't exist yet, probably because pull #2184 isn't merged. The new screen loops over `QUOTA_KEYS`, so any key added there appears with no change t…
shipped production is serving it deploy 206648f
Approved. The terminal now has Account quotas (ctrl+k). It lists every QUOTA_KEYS entry with its limit and last change, enter sets one, x clears it. Reads and writes go through readQuotas/changeQuotas, so the gate is the page's: an admin who is a person. Guests, non-admins and admin agents get no command and an inert screen, and the test drives that screen directly. Values are checked by parseQuota and each change is kept with its actor. The README says how to use it. I did not run the preview, and I did not check the screenshots, because this is a TUI-only change with no new page. Next: (1) the title names previews, runs and checks, but QUOTA_KEYS holds only repositories and apps, so open an issue for those keys if they are wanted; the screen will list them once they exist. (2) A bad value reads "A quota is a positive whole number, or empty for no limit." Consider also showing the rejected input.
An admin can now list and set the account quotas from the terminal. It covers only
repositoriesandapps, becauseQUOTA_KEYSinsrc/settings/quotas.tsholds only those two on this branch. The issue names five, butpreviews,runsandchecksdon't exist yet, probably because pull #2184 isn't merged. The new screen loops overQUOTA_KEYS, so any key added there appears with no change to the screen.The new "Account quotas" command in the palette (
ctrl+k) opens a screen insrc/tui/screens/quotas.ts. Each key shows its limit ("no limit" when unset) and its last change (when, from → to, who). The header line shows the newest change overall.entersets the highlighted key, with an empty value meaning no limit.xclears it.changeQuotas, which runsparseQuotaand records the change, so the page, API, MCP tool and terminal share one rule. A bad value keeps the prompt open with the reason and changes nothing.readQuotasandchangeQuotasrefuse anyone else. Driving the screen directly as a non-admin or an admin agent reads and writes nothing.test/tui-quotas.test.tscovers listing, setting with its history, clearing, a refused0, no command for a non-admin or an agent, and a direct drive of the screen. I ran it withtui-flags(9 tests pass) andtsc --noEmitis clean. I did not run the whole suite, and the forge's check will run it on this push. I added one sentence to the README paragraph on quotas.I did not show more history than the newest change per key. The page lists the last 20 changes, and the terminal does not.
To try it, SSH in, press
ctrl+k, pick Account quotas, then pressenteronrepositoriesand type5. The row should read 5, and the header should say "no limit → 5" with your name.🤖 Generated with Claude Code
Closes #2191