You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sub-issue of the 2026-08-10 work-plan tracker. The detection layer for the silent-delivery-loss class — five production instances to date, latest on v0.25.0 (2026-08-10). All deterministic engine work.
Partial PRs still ship on failure: when result.errors is non-empty the run is marked failed and a failure issue opens, but PR creation still proceeds (src/index.ts:902). Decide and implement: annotate the PR as partial (with the "Files failed" section below) or suppress creation.
Stale-resync guard (resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276, added 2026-08-19): a regenerated section's code cells must match current source main, so a mismatch is stale-snapshot content by construction; on mismatch the run fails instead of shipping the PR. Not a naive byte-match: fa and zh-cn localize docstrings and comments inside code cells (verified on numpy.md 2026-08-19) while fr keeps them English — compare code cells with comment/docstring lines stripped, or gate per-language on the code-comments rule. Detection only: making resync regenerate from current main (the repair) stays with resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276, which remains open past this phase. Second lesson from the same incident, for the declared-vs-delivered box: a regeneration must account for every file of the PR it replaces — the 2026-08-18 fr regeneration silently omitted numpy.md, whose #595 edits remain undelivered (verified in content 2026-08-19).
Gate: land #169 (importable entry point) first or alongside — this phase edits index.ts, which has 0% test coverage. Validate with the e2e harness; watch the first organic sync after the tag moves.
Sub-issue of the 2026-08-10 work-plan tracker. The detection layer for the silent-delivery-loss class — five production instances to date, latest on v0.25.0 (2026-08-10). All deterministic engine work.
translation-sync-metadata.filesentry ends the run either changed or recorded "no change required + reason"; unexplained empty ⇒ run fails. The assertion must compare metadata against the delivered set independently of the error plumbing: the fourindex.tsfetch sites are already fail-closed as of v0.25.0 (:525collects intofetchErrorsand:533–535throws before any branch reset;:1097/:1158/:1190feedresult.errorsvia:881, which fails the run and opens a failure issue) — yet the 2026-08-10 fr#29 drop reported success, so the live drop path records no error at all. Trace and close that path as part of this item. The reconciliation runs both directions:files[]also under-declares today — the 2026-08-11 scenario-27 run delivered the bib entry and the state file with neither declared (W0 carry-forward) — so everything delivered must be declared, and everything declared must be accounted for.result.errorsis non-empty the run is marked failed and a failure issue opens, but PR creation still proceeds (src/index.ts:902). Decide and implement: annotate the PR as partial (with the "Files failed" section below) or suppress creation._toc.ymlstructured merge (Sync overwrites localised _toc.yml part captions with English, and nothing detects it #254, sync opens a PR whose _toc.yml references a lecture the same run failed to translate #156.1, Six defects observed syncing a six-PR batch to lecture-intro.zh-cn (declared files silently dropped, toc clobbered, .bib never synced) #256.2): add/remove- file:entries only; never write captions from source; skip entries whose target document is absent from target ∪ PR. Plus Sync overwrites localised _toc.yml part captions with English, and nothing detects it #254's deterministic caption-script assertion. Also dissolves the concurrent full-mirror coupling (sync opens a PR whose _toc.yml references a lecture the same run failed to translate #156 thread).examples/detect-stalled-sync.yml+translate status --stalled+ FAQ fingerprint foraction_requiredruns.main, so a mismatch is stale-snapshot content by construction; on mismatch the run fails instead of shipping the PR. Not a naive byte-match: fa and zh-cn localize docstrings and comments inside code cells (verified on numpy.md 2026-08-19) while fr keeps them English — compare code cells with comment/docstring lines stripped, or gate per-language on the code-comments rule. Detection only: making resync regenerate from current main (the repair) stays with resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276, which remains open past this phase. Second lesson from the same incident, for the declared-vs-delivered box: a regeneration must account for every file of the PR it replaces — the 2026-08-18 fr regeneration silently omittednumpy.md, whose #595 edits remain undelivered (verified in content 2026-08-19).Gate: land #169 (importable entry point) first or alongside — this phase edits
index.ts, which has 0% test coverage. Validate with the e2e harness; watch the first organic sync after the tag moves.Member issues: #90 #92 #156 #222 #234 #256 (defects 1/4/5) #276 (guard only) · supports #157
Generated by Claude Code