Found while implementing #8074 (PR #8407). Out of scope there — that card's deliverable was the guard mechanism, not the sweep. Filed unassigned; grading and routing are the triage seat's call.
The observation
#8074's own findings-round note said the census was probably incomplete ("two-in-one-shift suggests the census is not complete"). It still is, and #8074 closes on PR #8407 — so after that merge the residual sweep has no home.
Measured on 84c07c3 in packages/qa/dogfood/test/:
|
count |
files calling bootStack |
82 |
files passing orgContext: true |
3 (auth-session-audit-trail, org-scoped-sharing-rule-listing, owd-public-read-write-write-floor) |
files mentioning org_member at all |
1 (the #8023 fixture) |
files carrying an [integrity]-style precondition block |
3 |
So 79 fixtures boot with no organization. Every principal they resolve holds positions: ['everyone'], and any assertion any of them makes about a positions-gated row-level write verdict is in exactly #8023's position: the platform write floor never applies, and a refusal that a real deployment would produce is invisible.
Why this is not just "#8074 again"
#8074 delivered the mechanism (assertArmed / principalArmed) and retrofitted the five fixtures that already knew they had a precondition — the ones whose headers said so in prose. What it did not do, deliberately, is audit the other 79 for preconditions nobody has noticed yet. Those are the ones that would look exactly like #8023's first fixture: quiet, green, and wrong.
The sweep is cheap now in a way it was not before: principalArmed({ positions: ['org_member'] }) is one call, and a fixture that turns out not to need it costs one line of reasoning to rule out.
What would need deciding
Not obviously a mechanical fix, which is why this is a finding rather than a patch:
- the read axis is genuinely unaffected, so a blanket "every fixture must declare arming" would be noise on most of the 79;
- the discriminator is "does this file assert on a row-level write verdict", which is not reliably greppable —
authored-row-write-scope, bulk-widener-probe and showcase-scope-depth-write are the obvious shapes, but the read/write split is a judgement per file;
- some fixtures deliberately boot org-less to prove the org-less path itself (
sharing-rule-org-less-caller is named for it), so org-less is not by itself a defect signal.
A per-file triage pass over the write-asserting subset is probably the right shape, not a gate.
Related
Generated by Claude Code
Found while implementing #8074 (PR #8407). Out of scope there — that card's deliverable was the guard mechanism, not the sweep. Filed unassigned; grading and routing are the triage seat's call.
The observation
#8074's own findings-round note said the census was probably incomplete ("two-in-one-shift suggests the census is not complete"). It still is, and #8074 closes on PR #8407 — so after that merge the residual sweep has no home.
Measured on
84c07c3inpackages/qa/dogfood/test/:bootStackorgContext: trueauth-session-audit-trail,org-scoped-sharing-rule-listing,owd-public-read-write-write-floor)org_memberat all[integrity]-style precondition blockSo 79 fixtures boot with no organization. Every principal they resolve holds
positions: ['everyone'], and any assertion any of them makes about a positions-gated row-level write verdict is in exactly #8023's position: the platform write floor never applies, and a refusal that a real deployment would produce is invisible.Why this is not just "#8074 again"
#8074 delivered the mechanism (
assertArmed/principalArmed) and retrofitted the five fixtures that already knew they had a precondition — the ones whose headers said so in prose. What it did not do, deliberately, is audit the other 79 for preconditions nobody has noticed yet. Those are the ones that would look exactly like #8023's first fixture: quiet, green, and wrong.The sweep is cheap now in a way it was not before:
principalArmed({ positions: ['org_member'] })is one call, and a fixture that turns out not to need it costs one line of reasoning to rule out.What would need deciding
Not obviously a mechanical fix, which is why this is a finding rather than a patch:
authored-row-write-scope,bulk-widener-probeandshowcase-scope-depth-writeare the obvious shapes, but the read/write split is a judgement per file;sharing-rule-org-less-calleris named for it), so org-less is not by itself a defect signal.A per-file triage pass over the write-asserting subset is probably the right shape, not a gate.
Related
org_member-gated write floor, so a real 403 defect records as a PASSING cell #8074 — the class; PR test(qa): assertArmed — a fixture proves the control under test is engaged before it measures anything (#8074) #8407 is the mechanism and its retrofits.public_read_writeobject is only writable by the row's creator —showcase_contributorgets 403 editing ashowcase_projectit can read, where the access matrix declaresedit:true#8023 — the instance this projects onto the other 79.@ts-expect-error, so other compile-time pin idioms in a hidden test layer are invisible to it — measured on a live example #8113 — the compile-time half, separately held.Generated by Claude Code