Observation-class, measured while building the per-glob holder limb in PR #10690. No gate is red today, and this is not a defect — it is a green that is right for the wrong reason. Filed unassigned, no pm:queue.
Measured on 844bf29a84
The new per-glob limb asks whether each declared glob still holds something on its package's roster. @objectstack/platform-objects passes:
### @objectstack/platform-objects (escaping: 1 test(s))
roster literals: 1
HELD packages/**/*.object.ts <- packages/create-objectstack/src/templates/blank/src/objects/note.object.ts
That single roster path is a quoted literal in an exclusion list inside packages/platform-objects/src/managed-api-method-affordance-sweep.test.ts (:141), naming a template object the sweep deliberately skips. What actually holds the glob is the test's walkObjectFiles(PACKAGES_DIR) walk — which descends with readdirSync(dir) on a loop variable, so the detector resolves the escape and loses every name.
The two other packages declaring the same glob (@objectstack/spec, @objectstack/plugin-auth) have no such incidental literal, which is why they needed the heldBy witnesses PR #10690 adds and this one did not.
Why record it
The mechanical holder and the real holder are different things here. Deleting or rewording that exclusion entry — an ordinary edit, nothing to do with the radius — flips this glob to roster-invisible. The consequence is benign by construction (the gate then asks for a heldBy witness by name, which is the correct prompt), so nothing is broken; what is worth recording is that the green is currently supplied by a line whose purpose is unrelated, the same shape as #9763's "prose was holding the radius" one register down.
The cheapest treatment, if anyone wants one: declare the walker as this glob's heldBy witness alongside the other two packages, so the mechanical holder and the stated holder agree. Not done in PR #10690 on purpose — that PR declares witnesses only where the tree needs them to stay green, and widening the change to globs that already pass would have made the six load-bearing declarations harder to review.
Refs
#10566 (the limb) · PR #10690 · #10315 (derived paths a source scan cannot see) · #9763
Generated by Claude Code
Observation-class, measured while building the per-glob holder limb in PR #10690. No gate is red today, and this is not a defect — it is a green that is right for the wrong reason. Filed unassigned, no
pm:queue.Measured on
844bf29a84The new per-glob limb asks whether each declared glob still holds something on its package's roster.
@objectstack/platform-objectspasses:That single roster path is a quoted literal in an exclusion list inside
packages/platform-objects/src/managed-api-method-affordance-sweep.test.ts(:141), naming a template object the sweep deliberately skips. What actually holds the glob is the test'swalkObjectFiles(PACKAGES_DIR)walk — which descends withreaddirSync(dir)on a loop variable, so the detector resolves the escape and loses every name.The two other packages declaring the same glob (
@objectstack/spec,@objectstack/plugin-auth) have no such incidental literal, which is why they needed theheldBywitnesses PR #10690 adds and this one did not.Why record it
The mechanical holder and the real holder are different things here. Deleting or rewording that exclusion entry — an ordinary edit, nothing to do with the radius — flips this glob to roster-invisible. The consequence is benign by construction (the gate then asks for a
heldBywitness by name, which is the correct prompt), so nothing is broken; what is worth recording is that the green is currently supplied by a line whose purpose is unrelated, the same shape as #9763's "prose was holding the radius" one register down.The cheapest treatment, if anyone wants one: declare the walker as this glob's
heldBywitness alongside the other two packages, so the mechanical holder and the stated holder agree. Not done in PR #10690 on purpose — that PR declares witnesses only where the tree needs them to stay green, and widening the change to globs that already pass would have made the six load-bearing declarations harder to review.Refs
#10566 (the limb) · PR #10690 · #10315 (derived paths a source scan cannot see) · #9763
Generated by Claude Code