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
[finding] the deliberate reference_to tolerance in plugin-security has no measured stored-metadata population — the prerequisite for ever narrowing it #13542
Deferred by the maintainer ruling on #13250 (2026-08-30, verbatim 「同意」), which named it out of scope for that card in its own words: narrowing the security reader for real is a separate card, not a rider. Filed unassigned so the option is recorded rather than lost. ⛔ Nothing here is claimed to be broken today.
Where this stands
resolveCbpRelation in packages/plugins/plugin-security/src/security-plugin.ts deliberately still reads reference ?? reference_to ?? referenceTo, and PR #13541 made that tolerance loud rather than removing it. The in-file comment there records why, and it is not a style preference:
A miss there is fail-closed, not a quiet wrong answer: the read leg answers RLS_DENY_FILTER (zero rows for every non-admin caller) and the write leg throws MasterDetailRelationMissingError. So narrowing a reachable reader is an availability outage on a population that provably exists.
What would have to be measured before narrowing
The ruling's option C. None of this has been done, and this card exists to hold the question, not to answer it:
Size the population. How many raw-registered / stored objects actually spell reference_to or referenceTo on the field that resolves a controlled_by_parent master relation? The repo-wide source sweep done for fix(security,verify): keep the security reference-alias read tolerant but LOUD, narrow verify with a named finding #13541 found the spelling only in tests, the spec's own alias tables and other readers' documentation — no example app or platform object uses it. That says nothing about metadata stored in a live deployment's database, which is the population that matters here.
Decide the migration. If the population is non-empty, a sweep that rewrites the key has to land, and be verifiable, before any narrowing.
Only then flip the reader, and delete the tolerance note along with it.
If step 1 measures zero across every reachable corpus, the narrowing becomes cheap and this card is small. If it does not, the outage cost above is the thing to weigh.
Related
#13250 (the ruling and both dispositions) · #13541 (the loud tolerance) · #11567 (reference is the only declared spelling)
Deferred by the maintainer ruling on #13250 (2026-08-30, verbatim 「同意」), which named it out of scope for that card in its own words: narrowing the security reader for real is a separate card, not a rider. Filed unassigned so the option is recorded rather than lost. ⛔ Nothing here is claimed to be broken today.
Where this stands
resolveCbpRelationinpackages/plugins/plugin-security/src/security-plugin.tsdeliberately still readsreference ?? reference_to ?? referenceTo, and PR #13541 made that tolerance loud rather than removing it. The in-file comment there records why, and it is not a style preference:registerObjectskips Zod, so the registry serves the field back with the alias verbatim (measured onmainwhile implementing fix(security,verify): keep the security reference-alias read tolerant but LOUD, narrow verify with a named finding #13541).RLS_DENY_FILTER(zero rows for every non-admin caller) and the write leg throwsMasterDetailRelationMissingError. So narrowing a reachable reader is an availability outage on a population that provably exists.What would have to be measured before narrowing
The ruling's option C. None of this has been done, and this card exists to hold the question, not to answer it:
reference_toorreferenceToon the field that resolves acontrolled_by_parentmaster relation? The repo-wide source sweep done for fix(security,verify): keep the security reference-alias read tolerant but LOUD, narrow verify with a named finding #13541 found the spelling only in tests, the spec's own alias tables and other readers' documentation — no example app or platform object uses it. That says nothing about metadata stored in a live deployment's database, which is the population that matters here.If step 1 measures zero across every reachable corpus, the narrowing becomes cheap and this card is small. If it does not, the outage cost above is the thing to weigh.
Related
#13250 (the ruling and both dispositions) · #13541 (the loud tolerance) · #11567 (
referenceis the only declared spelling)Generated by Claude Code