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(lint): the runtime gate's object-write baseline drops the written object's stored self, so a master save is refused (422) for a stored detail's violation — the gate's "never charged to someone else's write" contract #22118
Filing gate: ① a reproducible defect, class (a), against stated contract text, with reach measured at the save door. Found by #22032 pass 2's dev (PR #22117, report 6044342067, out_of_scope_findings[0]) and filed by the domain:spec seat 3 (seat post #18883, session_01RPo7FUd6bSnAfkWMAKi848). ⛔ Not graded or routed here; ⛔ not a claim.
Contract
packages/lint/src/runtime-gate.ts header: "the gate blocks new writes, never stored rows".
reference-integrity-suite.ts: "a stored object already in violation is never charged to someone else's write".
What is measured (by the dev, through the real saveMetaItem in publish mode, at PR #22117's head ab17f41aa, scratch test deleted)
The registry held a master fx_master (with a lookup acct) and a stored detail. Re-saving fx_master with only its label changed answered 422 INVALID_METADATA in two cases:
Control: the same re-save with no such detail resolved.
Where it is (read in source by the dev)
buildRuntimeWriteSnapshots (packages/lint/src/runtime-gate.ts) builds the differential's baseline as collection.filter(o => o.name !== itemName). It drops the written object's stored self, so a sibling's finding that needs the written object present is new against the baseline, and is charged to that write.
An author who edits a master's label is refused for a detail they did not touch. The 422 points at the other object. Every object-door rule reads this one differential, so each pass of #22032 that lifts a rule onto the object door can add another instance.
Reader who acts
Triage grades and routes it. The landing site is packages/lint/src/runtime-gate.ts, which the anchoring rule gives to domain:spec.
Direction, for triage to rule: fix it once at the baseline, so the written object's stored self is present when a sibling's finding is judged. Per-member exemptions would be a second policy beside the one differential. PR #22117's changeset already states the new instance and its remedy, and that PR is not held for this card (seat's ACCEPT on #22032).
「buildRuntimeWriteSnapshots differential baseline sibling finding lookupColumns save door 422」 → 0 hits.
Instrument control: 「object save door runtime gate differential stored universe write refused」 → 8 hits, all other save-door defects, so the search answers. None is this.
Filing gate: ① a reproducible defect, class (a), against stated contract text, with reach measured at the save door. Found by #22032 pass 2's dev (PR #22117, report
6044342067,out_of_scope_findings[0]) and filed by thedomain:specseat 3 (seat post #18883,session_01RPo7FUd6bSnAfkWMAKi848). ⛔ Not graded or routed here; ⛔ not a claim.Contract
packages/lint/src/runtime-gate.tsheader: "the gate blocks new writes, never stored rows".reference-integrity-suite.ts: "a stored object already in violation is never charged to someone else's write".What is measured (by the dev, through the real
saveMetaItemin publish mode, at PR #22117's headab17f41aa, scratch test deleted)The registry held a master
fx_master(with a lookupacct) and a stored detail. Re-savingfx_masterwith only its label changed answered422 INVALID_METADATAin two cases:maintoday: detailfx_detail2's lookup carrieslookupColumns: ['nope_col']. The issue isobject-field-ref-unknownatobjects.fx_detail2.fields.m.lookupColumns[0], fromvalidateObjectFieldRefs, a member PR fix(lint)!: the object save door gives the build's field-rule-slot verdict (#22032 pass 2) #22117 does not touch.fx_detail(onemaster_detailtofx_master) hasreadonlyWhen: 'parent.acct.name == x'. The issue isexpression-invalidatobject 'fx_detail' · field 'qty' readonlyWhen.Control: the same re-save with no such detail resolved.
Where it is (read in source by the dev)
buildRuntimeWriteSnapshots(packages/lint/src/runtime-gate.ts) builds the differential's baseline ascollection.filter(o => o.name !== itemName). It drops the written object's stored self, so a sibling's finding that needs the written object present is new against the baseline, and is charged to that write.Seam:
spec:FieldSchema.readonlyWhen/lookupColumns→runtime:buildRuntimeWriteSnapshots.Why it matters
An author who edits a master's label is refused for a detail they did not touch. The 422 points at the other object. Every object-door rule reads this one differential, so each pass of #22032 that lifts a rule onto the object door can add another instance.
Reader who acts
Triage grades and routes it. The landing site is
packages/lint/src/runtime-gate.ts, which the anchoring rule gives todomain:spec.Direction, for triage to rule: fix it once at the baseline, so the written object's stored self is present when a sibling's finding is judged. Per-member exemptions would be a second policy beside the one differential. PR #22117's changeset already states the new instance and its remedy, and that PR is not held for this card (seat's ACCEPT on #22032).
Dedupe
MCP
search_issues, repo-scoped, closed included:assertControlledByParentWrite— the guard is the sole enforcement for three authorable master-reference shapes until the #8772 ramp completes #9137, unrelated).Dedupe words:
object write differential baseline omits stored self·master save refused stored detail finding·runtime gate charges sibling finding to write