Repository navigation
docs(qa): re-point the platform-owner-email item's legacy-grant anchor at grantAnchorsPlatformStanding - #24463
Merged
objectstack-fleet[bot] merged 1 commit intoOct 19, 2026
Conversation
…r at grantAnchorsPlatformStanding b2e7870 replaced the posture flag legacyGrantAnchorRetired in packages/core/src/security/resolve-authz-context.ts with the predicate grantAnchorsPlatformStanding(grant, { walled, defaultOrganizationId }). Under a walled posture it anchors nothing; under single the organization-less admin_full_access row still anchors, which is what the source parenthetical states. The anchor now names that predicate. Prose, clauses, steps and oracles are unchanged. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
席位核对ACCEPT ·
Landing. Ready, then auto-merge through the queue, by this seat. Generated by Claude Code |
objectstack-fleet
Bot
deleted the
claude/issue-24438-checklist-legacy-grant-anchor
branch
October 19, 2026 05:27
This was referenced Oct 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #24438
Clause-②: no
What
pnpm check:platform-checklistis red onmainwith one problem:areas/access-security.jsoncitespackages/core/src/security/resolve-authz-context.ts#legacyGrantAnchorRetired, and that file no longer declares the symbol. This PR changes that one citation, insource[2]of itemaccess-security.platform-owner-email-anchor, to#grantAnchorsPlatformStanding.Nothing else changes: not the prose beside the citation, not any clause, step, fixture or oracle, not
scripts/symbol-anchors.mjs, not the anchor baseline. Diff: 1 file, +1 / -1.Where the symbol went
b2e78701f7(PR #24373) deleted the local flagconst legacyGrantAnchorRetired = postureEnforcesWall(resolveTenancyPosture())fromresolveUserAuthzGrants. It added a module-level predicate,grantAnchorsPlatformStanding(grant, { walled, defaultOrganizationId }). §6b now asks it of everyadmin_full_accessgrant:single: the organization-less grant anchors, and so does the Default Organization's grant.The citation's parenthetical reads "the unscoped admin_full_access row derives PLATFORM_ADMIN only when the requested posture enforces no wall". That is still true, and the predicate is now where it is decided:
if (anchor.walled) return false;, thenorganizationId === null || …. The requested posture is still read bypostureEnforcesWall(resolveTenancyPosture()), now held inwalled. So this is a re-point: the behaviour the citation describes did not move.Verification
725a5b131(origin/main):node scripts/check-platform-checklist.mjsexits 1 withcheck-platform-checklist: 1 problem(s). That one problem is the ABSENT SYMBOL line the card quotes.0c177741b:pnpm check:platform-checklistexits 0, self-tests included. Verdict:check-platform-checklist: OK — 16 areas, 327 items (322 active, 1 planned); … symbol anchors: 855/865 resolved by symbol-anchors.mjs … 18 file floors held.node scripts/pm/dispatch-gates.mjs --commandson this diff derives 13 commands. All 13 exit 0 at0c177741b:check-ci-filter-parity,check-closing-keyword-parity(and its--self-test),check-comment-mask-corpus,check:doc-formula-expressions(lint),check:cross-package-test-inputs,check:doc-authoring,check:driver-memory-census,check:gitlink-declared,check:nul-bytes,check:platform-checklist,check:refd-timer-probe,check:watch-hint-literal.--ranreconciliation: "13 derived famil(ies) accounted for — 13 run, 0 NOT-MEASURED (a DERIVED zero — all 13 recorded an exit code and none of them is 3)".check:doc-formula-expressionsfirst exited 3 (PREREQUISITE NOT MET, because lint and formula were not built). That is not a measurement. Afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lintit exited 0.docs/qa/**publishes nothing, so the PR carriesskip-changeset.Acceptance notes
revision"on any semantic edit". This edit changes no step, clause, verify or oracle, so a run record pinned to revision 3 still reads the same item.sourceanchor in place with no bump:52ff308b8,646303eae,df000d4b2,bb7ccde66,6868514b1. Two docs(qa) PRs bumped:6792be6ab, and52c04b360, which edited averifyfield.historyentry.singleposture — first-user promotion becomes development-only fallback #11979's (Choice 4B): if that lands, this clause is re-authored, not read as a regression". PR fix(security): the single-posture platform-admin grant is owned by the Default Organization, and every reader of platform standing reads it #24373 landed platform-admin re-anchor follow-up (Choice 4B): config-anchor thesingleposture — first-user promotion becomes development-only fallback #11979 at 2026-10-18T19:15Z (state reasoncompleted).admin_full_accessgrant withorganization_idset to the Default Organization (packages/plugins/plugin-security/src/bootstrap-platform-admin.ts). The PR's fresh-boot golden moved its grant owner fromnulltoorg_default.singleboot this item runs, the seeded admin holds the Default Organization's grant, not the organization-less row. Four phrases describe the older boot:personas[0]: "it is grant-anchored via the unscoped admin_full_access row that first-registrant promotion writes";fixtures.knownGaps[0]: "also holds the unscoped admin_full_access grant under single";acceptance[0]: "under single the ADR-0068 D2 unscoped-grant anchor stays the only door";acceptance[5]: "(clauses 1 and 3 observe it live)".admin_full_accessbecomes a kernel metadata declaration; WHO holds it comes from env-configured verified emails — retiring the org-less row anchor #11663 L5] the legacy grant row is an anchor undersingle, and NOWHERE else'. The new half is pinned by '[ADR-0131 D5] undersinglethe Default Organization's admin_full_access grant is the anchor', in the same test file. The item cites that describe nowhere.Generated by Claude Code