@@ -173,8 +173,10 @@ contradicts it, and correct it here when it does.
173173 ` @playwright/test ` 1.63.0 (the ` ^1.63.0 ` ` examples/app-showcase/package.json ` declares, the
174174 only version in the store) resolves chromium build ** 1243** ; only ** 1194** is installed.
175175 Re-measured at ` bfc1539fe0 ` : this entry read 1.62.1 and build 1234 until the tree moved
176- to 1.63.0.
177- ** Check:** ` grep -A2 '"name": "chromium"' node_modules/playwright-core/browsers.json `
176+ to 1.63.0; ` playwright-core ` sits only in the pnpm store (there is no root
177+ ` node_modules/playwright-core ` ), so the check reads it there.
178+ ** Check:**
179+ ` grep -A2 '"name": "chromium"' node_modules/.pnpm/playwright-core@*/node_modules/playwright-core/browsers.json `
178180 against ` ls $PLAYWRIGHT_BROWSERS_PATH ` (` /opt/pw-browsers ` here, holding
179181 ` chromium-1194 ` / ` chromium_headless_shell-1194 ` only). The stock
180182 ` examples/app-showcase/playwright.config.ts ` sets no ` executablePath ` , so every test
@@ -338,19 +340,20 @@ contradicts it, and correct it here when it does.
338340 (` packages/plugins/plugin-auth/src/auth-manager.ts ` , ` hasPendingInvitationFor ` ).
339341 ⚠️ ** The sign-up does not apply the invitation's role.** It binds the new user to the
340342 Default Organization as ` member ` whatever role was invited, and leaves the invitation
341- ` pending ` (` reconcileMembership ` in ` packages/plugins/plugin-auth/src/reconcile-membership.ts `
342- writes ` role: 'member' ` ). For any other role (` admin ` , ` owner ` ), the persona — signed in
343- as itself — then sends ` POST /api/v1/auth/organization/accept-invitation ` with
344- ` {"invitationId": "ID"} ` (the ` id ` the invite-member call answered, or the row its own
343+ ` pending ` (` reconcileMembership ` in
344+ ` packages/plugins/plugin-auth/src/reconcile-membership.ts ` writes ` role: 'member' ` ). For
345+ any other role (` admin ` , ` owner ` ), the persona — signed in as itself — then sends
346+ ` POST /api/v1/auth/organization/accept-invitation ` with ` {"invitationId": "ID"} ` (the
347+ ` id ` the invite-member call answered, or the row its own
345348 ` GET /api/v1/auth/organization/list-user-invitations ` lists). Acceptance writes the
346349 invitation's role onto that membership and the invitation reads ` accepted `
347350 (` adoptExistingMembership ` in ` packages/plugins/plugin-auth/src/adopt-membership.ts ` ,
348351 which never lowers a grade; pinned by ` accept-invitation-adopt-membership.test.ts `
349- beside it). The invitee's email need not be verified: the deployment declares
350- ` requireEmailVerificationOnInvitation: false ` . QA run #24616 met it: an ` admin `
351- invitation signed up as ` member ` , and the persona held ` org_admin ` only after the accept.
352- ** Check:** read the persona's ` sys_member ` row (` role ` ) before scoring a role-gated
353- clause, never the invitation you sent.
352+ beside it, 6 passed at ` bfc1539fe0 ` ). The invitee's email need not be verified: the
353+ deployment declares ` requireEmailVerificationOnInvitation: false ` . QA run #24616 met it:
354+ an ` admin ` invitation signed up as ` member ` , and the persona held ` org_admin ` only after
355+ the accept. ** Check:** read the persona's ` sys_member ` row (` role ` ) before scoring a
356+ role-gated clause, never the invitation you sent.
354357 2 . ** Admin create.** ` POST /api/v1/auth/admin/create-user ` , which answers
355358 ` mustChangePassword: true ` by default
356359 (` packages/plugins/plugin-auth/src/admin-user-endpoints.ts ` , ` runAdminCreateUser ` );
@@ -463,13 +466,15 @@ contradicts it, and correct it here when it does.
463466 refusal promises the walled postures for "an 18.x release" and names none. Kernel-level
464467 boots (` @objectstack/verify ` 's ` bootStack ` , the dogfood wall suites) never pass through
465468 ` serve ` and still boot walled, which is why a walled clause is proven by its pins.
466- ** So:** score a walled clause from the pins its item names, and record its live leg
467- ` skipped ` with this entry cited — "not scored on a stock 18.0 boot" — as the clauses of
468- the withdrawn organization-ownership command are. ⛔ Never ` blocked(fixture) ` : no fixture
469- provisions a posture the release refuses. The 18.0 sweep's records met it and scored the
470- live leg both ` blocked(environment) ` (QA runs #24557 , #24559 ) and ` blocked(fixture) ` (QA
471- run #24558 ); this entry is the one word. Each item that carries such a leg names it in its
472- own ` fixtures.knownGaps ` .
469+ Measured at ` bfc1539fe0 ` : ` isolated ` , ` group ` and ` OS_MULTI_ORG_ENABLED=true ` each exit 1
470+ with that FATAL on ` os serve ` and on ` os start ` , ` single ` passes the gate, and the pin
471+ reports 5 passed. ** So:** score a walled clause from the pins its item names, and record
472+ its live leg ` skipped ` with this entry cited — "not scored on a stock 18.0 boot" — as the
473+ clauses of the withdrawn organization-ownership command are. ⛔ Never ` blocked(fixture) ` :
474+ no fixture provisions a posture the release refuses. The 18.0 sweep's records met it and
475+ scored the live leg both ` blocked(environment) ` (QA runs #24557 , #24559 ) and
476+ ` blocked(fixture) ` (QA run #24558 ); this entry is the one word. Each item that carries
477+ such a leg names it in its own ` fixtures.knownGaps ` .
473478
474479- ** A stock 18.0 boot holds exactly one organization, and no door mints a second — so an
475480 org-switch clause has no live leg on a stock boot either.**
@@ -488,7 +493,7 @@ contradicts it, and correct it here when it does.
488493 a stock 18.0 boot: record its live leg ` skipped ` with this entry cited, and score what its
489494 pins prove. A run that stages the second organization itself (QA run #24560 wrote one with
490495 a system write) scores a fixture of its own making, not a stock boot, and its record says
491- so. QA runs #24560 and #24558 met the 403.
496+ so. QA runs #24560 and #24558 met the 403; the pin reports 25 passed at ` bfc1539fe0 ` .
492497
493498- ** One container builds one tree at a time: never run ` pnpm build ` and
494499 ` pnpm objectui:build ` together, and give the heavy steps a concurrency the shell's memory
@@ -520,10 +525,10 @@ contradicts it, and correct it here when it does.
520525 directions: a ` *.e2e.test.ts ` pin (` serve-organization-record-page.e2e.test.ts ` ) collects
521526 nothing without ` OS_TEST_TIERS=nightly ` (QA runs #24556 / #24558 ), and with it set, 28 of
522527 the 29 cli files the Tier 1 rerun named ran 0 tests (QA run #24598 , #24579 round 2).
523- ** Fix:** run a cli ` *.e2e.test.* ` pin in an invocation of its own
524- with ` OS_TEST_TIERS=nightly ` , and every other cli pin without it. ⛔ A named file that
525- collects no test is not a pass, and here it is not a stale ref either — re-run it under
526- the other setting before fixing the item.
528+ ** Fix:** run a cli ` *.e2e.test.* ` pin in an invocation of its own with
529+ ` OS_TEST_TIERS=nightly ` , and every other cli pin without it. ⛔ A named file that collects
530+ no test is not a pass, and here it is not a stale ref either — re-run it under the other
531+ setting before fixing the item.
527532
528533- ** ` scripts/qa/qa-rollup.mjs ` has two blind spots a runner meets at close-out.** (1) Only a
529534 BARE area name classifies as an area: ` classifySelector('platform-core') ` answers ` area ` ,
0 commit comments