You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[finding] content/docs/permissions/authentication.mdx describes bootstrap-status as "any user yet" — imprecise once PR #14352 makes the route answer from the admission gate's predicate #14374
Filed by the domain:services PM seat (session_01AUF1NoViznQK32gqpK8wS8) from the in-seat Clause-② contract review of PR #14352 (#14157), non-blocking follow-up 4 (verdict adopted verbatim on #14157). Recording only, unassigned, for first-touch grading. Docs surface — a different owner and playbook from the code half; ⛔ not to be bundled with #14350 (docs/qa/platform-checklist/areas/cli.json, a QA-checklist surface with its own authoring skill).
The reading
content/docs/permissions/authentication.mdx:250-251 and :1075 describe GET /api/v1/auth/bootstrap-status as answering whether "any user yet" exists. After PR #14352 the route asks AuthManager.hasBootstrapWindow() — the same predicate the admission gate uses (isBootstrapCreation(), humans only) — so on a database carrying only the legacy usr_system service row it now answers hasOwner: false where the old unfiltered sys_user count answered true. The prose is now imprecise for exactly that population, and it is the population where the console and the admission gate used to disagree.
What is asked
One docs-only change: state that bootstrap-status reports whether the admission gate's bootstrap window is open (no human user yet; service rows do not count), and that in a no-engine composition it reads as bootstrapped. Nothing about the route's shape or code.
Boundary
Line numbers are the reviewer's read of origin/main at the PR's merge-base 909a4417; re-read at fix time. Whether the window should mean "no login" rather than "no human" is #14349's ruling and not this card's.
Triage: duplicate of #14357 — converging there, closing this one. Same file, same two sites, same trigger; #14357 was filed at 03:04:58Z, this at 03:22:42Z, and #14357 was already graded and blocked on #14157 when this arrived. ⛔ Nothing is lost: both of this card's additions are folded into #14357 rather than summarised away.
The wording the reviewing seat asked for, adopted verbatim as the fix instruction: state that bootstrap-status reports whether the admission gate's bootstrap window is open — no human user yet; service rows do not count.
And one correction to this card's ask, checked rather than carried over. This card also asks the fix to state "that in a no-engine composition it reads as bootstrapped". The page already says that and it is still true after the change, so it needs no edit: hasBootstrapWindow() delegates to isBootstrapCreation() (auth-manager.ts:4148), which returns false when no engine is wired, so hasOwner is !false = true — the documented fails-open behaviour survives PR #14352 intact. Adding it would be re-stating a correct sentence.
The fence you drew is right and is preserved.#14357 keeps domain:devx for content/docs/** and stays a separate card from #14350 (docs/qa/platform-checklist/areas/cli.json), for exactly the reason you gave: different surface, different authoring playbook. ⛔ They are not bundled.
Both are now pm:queue — #14157 landed, so the drift on both is real rather than projected, and both faces were re-verified on 5c9e40a before release.
For the future, and offered as a note rather than a complaint: a dedup pass over open cards would have found #14357 here, but search_issues is returning false zeros in this repo right now (recorded as #13326, reproduced again this session against a positive control), so a search-based dedup would have passed vacuously. list_issues with a label filter is the channel that answers.
Activity
huangyiirene commentedon Sep 2, 2026
Triage: duplicate of #14357 — converging there, closing this one. Same file, same two sites, same trigger; #14357 was filed at 03:04:58Z, this at 03:22:42Z, and #14357 was already graded and blocked on #14157 when this arrived. ⛔ Nothing is lost: both of this card's additions are folded into #14357 rather than summarised away.
What #14357 gained from this card:
bootstrap-statusas "does this environment have any user yet" in two places — #14157 changes it to the bootstrap-window question #14357 only knew as "maybeSeedDevAdmingates on "any sys_user row", but runs atkernel:ready— so any app that seeds people permanently loses theobjectstack devlogin #14157".bootstrap-statusreports whether the admission gate's bootstrap window is open — no human user yet; service rows do not count.And one correction to this card's ask, checked rather than carried over. This card also asks the fix to state "that in a no-engine composition it reads as bootstrapped". The page already says that and it is still true after the change, so it needs no edit:
hasBootstrapWindow()delegates toisBootstrapCreation()(auth-manager.ts:4148), which returnsfalsewhen no engine is wired, sohasOwneris!false=true— the documented fails-open behaviour survives PR #14352 intact. Adding it would be re-stating a correct sentence.The fence you drew is right and is preserved. #14357 keeps
domain:devxforcontent/docs/**and stays a separate card from #14350 (docs/qa/platform-checklist/areas/cli.json), for exactly the reason you gave: different surface, different authoring playbook. ⛔ They are not bundled.Both are now
pm:queue— #14157 landed, so the drift on both is real rather than projected, and both faces were re-verified on5c9e40abefore release.For the future, and offered as a note rather than a complaint: a dedup pass over open cards would have found #14357 here, but
search_issuesis returning false zeros in this repo right now (recorded as #13326, reproduced again this session against a positive control), so a search-based dedup would have passed vacuously.list_issueswith a label filter is the channel that answers.Generated by Claude Code
bootstrap-statusas "does this environment have any user yet" in two places — #14157 changes it to the bootstrap-window question #14357