My handoff rebuild ran BUNDLE=rudder-voice, which wrote
public/dx-maps/rudder-voice/rudder-voice.js and committed it. check:targets
failed on exactly that: rudder-voice is a DESKTOP-only voice-to-text tool, not a
web plugin, so a bundle under public/dx-maps would ship it in the /cdn export.
Development has no such file; this was mine, created minutes ago by rebuilding
every composite the scan named without checking which of them are web targets.
Removed from the index and from disk. check:targets passes.
The gate hashed each component's entire emitted CSS, so any unrelated style change
in these four files (Regions giving three :host rules position:relative) failed it,
and could pass only by re-baselining a guard that exists to prove something else.
It now hashes what library/styles/portedGlobals.js emits, found in the executed CSS:
each cyrillicHeading and strongMedium rule with the selectors in front of it, and
each scrollbar-gutter declaration with its rule's selector.
Re-baselined on the tree the old gate passed on. Proven both ways: re-scoping
GoalCard's strong rule, changing the module's Cyrillic letter-spacing and dropping
a file's ported rules each fail it; --write refuses to baseline an empty block.
BUNDLE=<name> bun x vite build for cities-internet, gospel-internet,
gospel-resources, plugin-studio and rudder-voice, then bun run tree and fix:sri.
Regenerated on this tip, never merged: the scan refused the previous sha with
gospel-internet stale (committed 7361a689e3a6 against a rebuild of ce15dd0ba73f).
- repo/auto-signin: carried by repo/handoff's 6df2da9c9 (merged above), replayed with its entry.sh conflict against V2 and DEV_SERVER resolved; UNVERIFIED, default off.
- repo/plugin-designer-skill: on development with edits: cde106a55 landed as f66650462, and the other four are in skills/plugin-designer/SKILL.md sections 2, 5, 8 and 9-10 in newer wording.
- repo/gospel-number-revert: abandoned. The numerals hold became the LOC-ENUS warn in check:universal-props, pending the numerals decision, and gospel has since rewritten the files it touches.
- repo/land-shots, repo/land-shots4: superseded by later README screenshot retakes on development (6e5c0874d, 09-27 09:58Z, and after).
Already on development by content (it landed under other shas, often with edits):
- composite-interop-gate: check-composite-interop is registered.
- cp-i18n: the legend keys; the country wall is translated in upg100's pass 03839179b.
- drvref: source c2473d0e4 (L13); the rebuild was regenerated as c8f9b3882.
- i18n-pplr: pplr.tabs.* and pplr.status.*.
- internet-adm1-full, internet-adm1-india: build-adm1-internet.mjs, India by state.
- list-prop-tier-a: library/lists/peopleGroupList.js.
- pplr-d3-no-merge: loadPinnedUmd in pplrData.js.
- pplr-globals: connectivity-map deletes window.__ciMap on unmount.
- print-floor: R23, printInPlace FRAME_KEEP_MS and check:print-frame-reclaim.
- pwp-hamburger: the Zones drawer.
- template-map: template-map-a is the real map.
- upgn-howto-keys: neighbor.about.greenTitle.
- uprops-allow: the upg-neighbor ALLOW in check-universal-props.
- wall-keys: wall.drawLibError and the share keys.
Superseded:
- mobile-gating: by the phone-flag implementation 51ef6f7ec.
- wall-sizes: by the Wall A6 sizes and footer, 35df7410d.
- research-core: by the shared legend-map bridge refactor of the same twins, 155c774b2.
- apg-lite: by apg-perf2, 1bbc5ff87 (the APG2 ruling); it keyed a thinning to software rendering, which is what test rigs have, not readers.
Deliberately not taken, pending a product decision, and reachable in history:
- wall-4x6: a 4 x 6 ft preset outside the brief's size set (sheet row 117).
- wall-d3-measure: MEASUREMENT ONLY, the A9 bundling trade-off; no npm deps added.
The tree is unchanged: an octopus merge with the 'ours' strategy.
Seven Driver citations came back with the merged branches. Each keeps its
engineering reason and its date, and loses the speaker: the overlap report, the
poster's legend rule, the network-change defect, the chart's provenance.
check:plural-forms crashed rather than failed. It built its locale list by
listing the catalogue directory, so a README.md moved in beside the locale
folders became a 'locale', passed the exists check because a file does exist,
and crashed readdirSync on a non-directory. It now filters to directories. The
gate on development has the same line and only survives because that README is
not there yet -- so this is a fix for development, not a merge artefact.
Both found by running the full 103-gate chain; the shortened chain the merge
produced ran neither.
- rega/gi-heavy (05b5a3e62): already on development as f9ce2aeb4 (same
change: the gospel-internet board counted as a heavy Gallery tab);
all 6 files it touches were changed later on development.
- rega/readme-shots-7a7ca67b (12070ba36): already on development as
17763cdcc (20 of its 23 shots) and 6e5c0874d (the other 3); all 22
files it touches were retaken later on development.
Merge strategy "ours": the tree is unchanged.
Merging gospel/a5-cpu and gospel/panel-followup brought back two comments that
quote the Driver directly, and check:no-new-driver-references failed on them —
correctly. Development had already swept these; the merge reintroduced them from
an older base.
Both keep their reasoning and lose the attribution: a recording pill that
changes width on every word reads as instability, and on a phone the header can
take most of the panel, leaving the draft unscrollable and its last lines
unreachable. Those are the facts the rules encode; who said them is not.
The branch retook 25 README shots tokenless from main 8b6f37f6 on 09-26.
Development has since retaken every one of those files (d25974f04,
9caf30e81, 17763cdcc, 6e5c0874d), so its content is superseded: this
merge records the branch as merged and keeps development's tree
unchanged (merge strategy "ours").
Merging the branch backlog cut gates:pre to 49 entries of 102 and gates:post to
86 of 108: package.json holds each gate on its own line, but the chains are
single long strings, so a line-wise union takes one side wholesale while every
definition survives. A run then passes and means almost nothing.
Both chains come from development, with the one gate these merges add appended
rather than replacing them. Every gate named in a chain is defined: checked,
not assumed.