Repository navigation
sync-skill: resolve the locale directory, and guard seams against upstream test fixtures - #88
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two lessons from the v1.4.206 re-cut sync (#87). Both are rules, so both are edited into the step
that owns them —
references/file-ownership.md. Nothing here touchesSKILL.mdorsync-lessons.md, so it cannot conflict with #85 or #86.1. The locale sweep pointed at a directory that does not exist
The reference told the run to sweep fork locale bundles against
src/renderer/src/locales/*.json.That directory does not exist — not at v1.4.206, and not at the previous tag either:
Run as documented with
ls, the sweep errors. Run the way an agent will naturally reach for —a Python glob or
find— it returns the empty set, and every fork bundle then compares cleanagainst zero required locales:
That is the false-pass shape this reference warns about elsewhere, and it reported success on the
one check that exists to catch a missing locale file. Re-run against the real directory, the
answer was also zero — but only by luck.
The fix corrects the path in both places and adds the rule: resolve the directory, and confirm the
locale set is non-empty before trusting the comparison. The path has moved once, so it can move
again; a pasted path fails silent while a resolved one fails loud.
2. A fork seam threw inside upstream's own test fixture
v1.4.206 added
pending-split-close-test-fixture.ts. It is upstream's fixture, built forupstream's code, and it supplies no
settingsRef. The terminal-dock seam interminal-pane-pane-closed.tsread:Optional on
.current, but not on the ref. Three of upstream's pending-close suites threwTypeError: Cannot read properties of undefined (reading 'current')across shards 4, 5 and 6 —one fork line failing suites the fork has no stake in, in files it does not own.
Nothing in the ownership pass sees this.
--verify-seamspasses (the declared line is present),--verify-residualspasses, the guard passes, and all four typecheck projects pass. It appearsonly in PR CI, and the stack reads as a renderer bug rather than a seam question.
The skill had no guidance for this at all — the only record was a note outside the repo. The new
section gives the tell (a
TypeErrorwhose stack runs upstream test → upstream fixture → one forkline in an upstream file), the rule (optional-chain the whole access path, absent state means the
feature is off, open durable state lazily), and why the guard belongs in the seam rather than in
the fixture: upstream's fixture resets to the tag every sync, so hardening it there is undone at
the next release.
Fixed in #87 as
98ca77ac0d.