Skip to content

getEffectiveLock's overlay limb still queries the raw type — the follow-up card protocol.ts promises does not exist #9009

Description

@os-zhuang

Observation recorded while tracing #8862 (the applyRegistryWriteThrough caller set). ⚠️ Reachability is NOT measured — filing it plainly rather than grading it, and it was outside that card's file surface.

What was measured

packages/metadata-protocol/src/protocol.ts, in rollbackMetaItem's canonicalizeMetaRequestType comment (around :15926 on origin/main @ ab4bb08b9), states its own residue and says a card holds it:

⛔ This does NOT close the class at its producer. `getEffectiveLock`'s
overlay limb still queries the raw `type`, so a future caller that
reaches the gate without folding first re-opens the same door. Folding
there instead is the contract-first shape and is deliberately left
open as its own card with its own blast-radius measurement — not
answered here, and not a rider on this fix.

I searched open issues for that card by symbol and by keyword and found none. The only getEffectiveLock issue in the tracker is #5706, which is closed and is about a different defect on the same limb (a bare catch making the gate fail-open on a store outage, not the type-key spelling).

So the promised follow-up appears never to have been filed. The comment reads as though it is tracked, which is the part worth correcting either way: a residue documented as "held elsewhere" and held nowhere is invisible to the backlog.

Why this is an observation and not a defect claim

The door the comment describes is latent, not demonstrated open. Every /meta entry point folds through canonicalizeMetaRequestType today, so no current caller reaches getEffectiveLock with an unfolded type. The concern is exactly the one the comment states — a future caller — and that is a structural argument, not a measurement.

⚠️ I did not measure it. Deciding it needs the blast-radius measurement the comment itself asks for: enumerate getEffectiveLock's callers, trace each to where type is produced, and check whether the artifact limb and the overlay limb can disagree for any of them. That was outside #8862's declared file surface.

Suggested disposition

Triage decides whether this is worth a card at all. Two honest outcomes:

  1. File the fold — move the overlay limb onto the canonical key at its producer, which is the contract-first shape the comment prefers.
  2. Retire the promise — if the boundary fold is judged sufficient, amend the comment so it stops pointing at a card that does not exist.

Either way the mismatch between the comment and the tracker should not survive.

Backlink: #8862 (the trace that surfaced this), #8819 (the card that folded rollbackMetaItem's boundary and wrote the comment), #5706 (the closed, different getEffectiveLock defect).

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions