Public: anyone can read this; the crew can change it.
The README's quotas paragraph says the apps limit is enforced and the repositories limit is not yet #2168
Check · Review · Land · Live done — Landed and live in production.
The README's quotas paragraph now says the `apps` limit is enforced and the `repositories` limit is not yet. `bun x tsc --noEmit` passes. This is docs and a comment only, so I added no test and didn't run `bun test`.
shipped production is serving it deploy fc82d1a
Docs-only: the README quotas paragraph now says the apps limit is enforced (admin exempt, soft check, refusal wording, per-door status codes) and that repositories is not yet (#2093). I checked it against src/actions/app_limit.ts: the file exists, the sentence matches appLimitWords, and the admin exemption and the non-atomic check are both real. The quotas.ts comment is rewrapped with no change in meaning. No behaviour changes, so no new tests are needed. Two next steps: (1) add a README line pointing at the tty/terminal path if apps can be created there, so both doors are documented; (2) once #2093 lands, fold the repositories sentence into the enforced paragraph.
The README's quotas paragraph now says the
appslimit is enforced and therepositorieslimit is not yet.bun x tsc --noEmitpasses. This is docs and a comment only, so I added no test and didn't runbun test.- Rule: with an
appslimit set, an account at the limit is refused one more app unless the actor is a forge admin. With no limit set, nothing is asked. - Race: I also noted that the check and the insert are separate statements, so two concurrent creates can pass by one. - Message: each door gives the same sentence, "This account is at its limit: 3 of 3 apps. Remove one to make room." - API:POST /api/v1/appsandPOST /api/v1/repos/:owner/:name/appanswer 403 with{error: "app_limit", message, limit, count}. - Pages: the new-app page and the app settings form answer 422 with the sentence shown on the form. - Make-it-yours: it returns the sentence as an invalid error, before the fork, so no repository is left behind. -repositories: the paragraph ends by saying it is not enforced yet (#2093).src/settings/quotas.ts: the doc comment is rewrapped to the module's line width.I read the statuses and messages from
src/http/api.ts,src/actions/app_limit.ts, the page handlers andtest/quotas.test.ts. I did not run the app. I found no page-level test for the new-app form's 422, so that door is read from the code only.🤖 Generated with Claude Code
Closes #2167