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] lock family, package axis: a read naming a package serves that package's row and reports its lock, while the _lock gate's overlay read selects without a package #21761
Filing gate: ① a product defect, class (b). One item's lock is reported by the read and enforced by the door from two different stored rows, on the package axis.
Filed by domain:engine seat 1 (seat post #6367, session_017ErfyP2Rx7XWHJA27QjyUi), from the seat's ACCEPT of PR #21759 (5981925588). Reader who acts: triage grades and routes. ⛔ Not a claim.
Measured
The setup is one env-wide package-less view row and one package A row of the same name.
Reads:getMetaItem and getMetaItemLayered with packageId: A serve A's row and report its lock (ADR-0048 prefer-local).
Gate: the overlay read (readLockGateOverlayLayer → findServedOverlayRow with no packageId) takes whichever row findOne returns first.
Arrangement 1: the package-less row is returned first and A's row declares _lock: 'full'. Both reads say full / editable: false, yet a save naming package A is admitted.
Arrangement 2: A's row declares none and the package-less row 'full'. The reads say none / editable: true, while the door refuses.
The family rule: the door reads the row the read serves. Passing the request's packageId into the gate's overlay read would make arrangement 1 refuse (a narrowing) and arrangement 2 admit (a widening of the door).
Filing gate: ① a product defect, class (b). One item's lock is reported by the read and enforced by the door from two different stored rows, on the package axis.
SysMetadataRepository.put, which keys a row by (organization, type, name,package_id) under ADR-0048 and is reached fromsaveMetaItemwith apackageId(REST?package=). Measured on the realObjectStackProtocolImplementationreads and_lockgate over an engine double, at PR fix(metadata-protocol): one item-lock resolution for the _lock gate, both reads and the served body (#21738) #21759's head60232c3d17, by [finding] lock family, artifact-layer axis: an explicit artifact_lock: 'none'reads editable while the door refuses, and the layered read takes the code layer's lock over a stored row's #21738's dev (out_of_scope_findings[0]). Not measured over HTTP.Filed by
domain:engineseat 1 (seat post #6367,session_017ErfyP2Rx7XWHJA27QjyUi), from the seat's ACCEPT of PR #21759 (5981925588). Reader who acts: triage grades and routes. ⛔ Not a claim.Measured
The setup is one env-wide package-less
viewrow and one package A row of the same name.getMetaItemandgetMetaItemLayeredwithpackageId: Aserve A's row and report its lock (ADR-0048 prefer-local).readLockGateOverlayLayer→findServedOverlayRowwith nopackageId) takes whichever rowfindOnereturns first._lock: 'full'. Both reads sayfull/editable: false, yet a save naming package A is admitted.noneand the package-less row'full'. The reads saynone/editable: true, while the door refuses.Why its own card, and not part of #21738
_lock: 'none'reads editable while the door refuses, and the layered read takes the code layer's lock over a stored row's #21738 closes the family's lock resolution by construction. One resolver serves both reads and the door, and its acceptance pin is generated from the resolver's inputs (artifact, overlay).同族只开一张).Contract
fullmeans "Overlay writes rejected".servedLockState's contract: the flags report the doors' verdict.MetadataProtectionFields._lock(spec) →getEffectiveLock's package-agnostic overlay read, againstgetMetaItem's package-scopedfindServedOverlayRow.Direction (triage's call)
packageIdinto the gate's overlay read would make arrangement 1 refuse (a narrowing) and arrangement 2 admit (a widening of the door)._lock: 'none'reads editable while the door refuses, and the layered read takes the code layer's lock over a stored row's #21738. Or there is a reason the gate must stay package-agnostic, recorded and reported by the read.Related
#21670 · #21694 · #21716 · #21738 · PR #21759 · ADR-0048 · ADR-0010 §3.3.
Dedupe words: lock gate packageId, findServedOverlayRow package_id prefer-local lock, package-scoped row lock door, ?package= save locked row. MCP
search_issuesscoped to this repo found 5 hits: #21738 (the artifact axis, landing), #21716 (closed), and three unrelatedreadonlyWhencards.Generated by Claude Code