Repository navigation
test(scripts): cover @object-ui/plugin-view and @object-ui/core in the vi.mock inherit gate - #8414
Conversation
…n the vi.mock inherit gate objectui#6892 slices 15 + 16, folded. Both specifiers already read all-inheriting when judged, so this is a membership flip and no test file is edited. Re-derived on d9788c1 with the gate's own `scan()` under a local `covered` override: @object-ui/plugin-view 10 judged, 10 inheriting, 0 frozen @object-ui/core 2 judged, 2 inheriting, 0 frozen Tree-wide census moves 648 judged / 648 inherit / 12 other workspace to 660 / 660 / 0. Diffed per site (verdict and reason string) over all 1785 call sites: exactly 12 rows changed, all `workspace/unjudged` to `covered/inherits`, the other 1773 byte-identical. A ratchet, so no sweep was owed. `@object-ui/components/ui/sonner` is deliberately NOT added: it is a subpath of a member and covered by reach since objectui#8141, and the constant names package roots only. With these two members the worklist closes -- every `@object-ui/*` specifier any `vi.mock` call site in this tree names is judged, and `other workspace` reads 0. The header records what that does and does not guarantee. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
|
ACCEPT — The diff is exactly two lines of substance, and the exclusion was refusedOne file,
The re-derivation was retaken, not inherited — including from a paragraph that argued the oppositeBoth figures re-derived on ⭐ Worth recording because it is where this fold could have gone wrong: slice 14's own header paragraph — written yesterday, by another dev, and still on main until this PR — said of these two specifiers "which is why they are still owed a slice each: the precondition below is a MEASUREMENT, and a specifier that reads zero frozen today can carry a frozen factory tomorrow." That prose argued against folding. It is not a maintainer ruling and not a triage decision, so this seat's gate-by-gate fold decision overrides it — but only because the brief demanded the measurement be retaken on today's tree rather than inherited from that very paragraph, and it was. Had either specifier moved overnight, the fold would have been wrong and the dev was instructed to sweep and say so. ⭐ The PR replaces that paragraph in the same diff, so code and prose do not disagree on main. The arithmetic that licenses
|
|
Armed: PR #8414 flipped ready at 2026-09-07T19:48:38Z on head Landing probe on merge, on re-fetched Control, read from the gate RUNNING on merged main, ⛔ not from a source grep: the post-merge Then LANDED here and on #6892, which CLOSES via Generated by Claude Code |
|
LANDED — merged into Content probe on re-fetched
Control, read from the gate RUNNING on merged main (34158071665, head ⇒ 660 judged / 660 inherit / 0 frozen / 0 other workspace. ⭐ Why the census reading was the load-bearing half of this control rather than a formality: adding two names to the list is trivially green on its own — the gate would print the longer list and the same 648 either way. A member added without its measurement is indistinguishable from one added with it, except by the count. The count moved by exactly 12, which is what makes "joined by measurement" a fact rather than a claim. The end state, and what it is notEvery Generated by Claude Code |
Fixes #6892
objectui#6892 slices 15 + 16, folded into one PR:
@object-ui/plugin-viewand@object-ui/corejoinCOVERED_SPECIFIERSinscripts/check-vi-mock-inherit.mjs,and the file's header records the slice in the shape slices 5-14 used.
No test file is edited. Both specifiers were re-derived as already
all-inheriting, so these are membership flips rather than sweeps.
Re-derivation (the gate's own
scan(), localcoveredoverride)Taken on
d9788c141-- the base of this branch -- never from the worklist'stable and never from slice 14's paragraph in the header:
Nothing frozen turned up, so no sweep was folded in.
Census, before and after
Judged rose by exactly 12 = 10 + 2, and
other workspacefell by the samenumber. Diffed PER SITE -- verdict and reason string -- over all 1785 call
sites the walk reports: exactly 12 rows changed, every one of them
workspace/unjudgedbecomingcovered/inherits, and the other 1773byte-identical. No site moved the other way, so this lands as a ratchet.
Why the closing keyword is correct here, and was not on the fourteen earlier slices
22 distinct
@object-ui/*specifiers are named by somevi.mock/vi.doMockcall site in this tree. 19 were members; these 2 make 21 package roots, all
members; the 22nd is
@object-ui/components/ui/sonner, a SUBPATH of the memberslice 6 swept, judged by reach since objectui#8141. So every specifier any call
site in this tree names is now judged and
other workspacereaches 0 -- theworklist has no remaining slice. Confirmed on this branch's own tree rather than
inherited from the dispatch.
The one specifier deliberately NOT added
@object-ui/components/ui/sonner. It is already covered by reach, and theconstant names package ROOTS only -- the gate's test pins that mechanically
(every member's
spec.split('/')has length 2), so adding it would turn a greenpin red while changing no verdict. Refused on purpose; the header now says so.
No STEP 0 barrel walk is owed, and that is a property of the flip
Every earlier slice measured its barrel's module-scope effects because
converting a frozen factory makes the real barrel LOAD in each converted file.
Nothing converts here: all twelve factories already spread the real module, so
both barrels already load in exactly the files that load them today. This diff
cannot change what a single test executes -- only what the gate judges.
Verification (real output)
The pin suite's 84 cases include the two this diff is exposed to: every member
names a real workspace package (
packages/plugin-viewandpackages/corebothmatch), and every member is a package root.
Changeset
Not owed, and measured rather than guessed:
The fourteen earlier slices each carried one because they edited test files under
a published package's
src/; this one touches a single file underscripts/.Not measured locally
pnpm check:readme-exportsexits 1 in this worktree with 532 lines of"its type entry
./dist/index.d.tsis not on disk -- runpnpm buildfirst".That is an unbuilt-workspace prerequisite, independent of this diff (which
touches no README and no package); CI builds first. Recorded as NOT MEASURED
rather than as a red gate.
Draft on purpose: CI convergence and the ready flip are the PM's read.
Generated by Claude Code