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
Tracking issue for the 2026-08-10 review of all 67 open issues, verified against main @ v0.25.0 (3db2f9f). Every issue was read in full; bug claims were checked against the current source, CHANGELOG.md, and comment threads (several issues carry status-changing comments their bodies don't reflect). Labels follow QEP-0002 (software set). This is a tracking parent and carries no Type label; the work phases are sub-issues.
not started — 0 of 7 boxes; retargeted v0.28.0 (v0.27.0 shipped without it). #169 slice 1 landed (#278); slice 2 (src/github-content.ts) is next
Open contributor PRs
#289 (#156 fix) and #291 (#254 interim) — both reviewed and upgraded in place 2026-09-01, CI green, mergeable, awaiting kp992's look. Merge order #289 → #291; src/ composes cleanly in either order (#291 moved to src/toc-captions.ts), remaining cross-conflict is the CHANGELOG Unreleased header + bundle map
open, conflicting, last commit 2026-06-25; four reviewers' rulings (names stay English, if-in-doubt English, lake モデル, Wikipedia cross-check) not yet applied; the promised lessons-learnt reply is outstanding since 2026-08-17. #300 filed for the Wikipedia cross-check idea
Resync moratorium
in force until #276's guard ships (W1 box 7); #281 records that the failure-issue template still prescribes \translate-resync
~2026-09-01 has arrived — W4 (#262) prompt work is now unblocked in principle; any model change still gates on #82's eval set
Tracker type
Project (set 2026-09-01 on the owner's instruction; was Task). Not yet registered in the status-projects dashboard's projects.yml — a registration PR against QuantEcon/status-projects is the remaining step for it to be observed
Resume pointer (next session): (1) merge #289 then #291 once kp992 has looked — or after a week, since both are maintainer-upgraded and CI-green; (2) triage the twelve arrivals into W1–W6 (at least #282, #287, #290 look W1-shaped — no run / state advanced past unapplied changes / state-file writer clobbers keys); (3) #169 slice 2, then W1 proper; (4) #69 — apply the thread's rulings and post the reply.
The finding
The backlog has one dominant failure shape, named by #90 and re-confirmed by every production incident since: the failure path produces a success-shaped artifact. Files declared in sync metadata but never delivered (#90.3 / #156 / #222 / #256 — five field instances, the latest on v0.25.0, 2026-08-10); unbuildable PRs shipped after the run logged its own errors (#156); localisations silently overwritten and served to readers for 17 days (#254) or as tofu for months (#182); runs that never start and never say so (#234); and — arriving after this review — resync regenerating from the source PR's merge-time snapshot so that newer source edits are silently reverted and the PR merges clean (#276, the class's sixth field instance, 2026-08-18).
The ordering keeps the doctrine #94 validated: decisions and external clocks first; detection before repair; foundations before dependents.
Verified status changes (issues whose bodies are stale)
Defect 1 substantially fixed (v0.17.0; verification pass left), defect 2 resolved (#137). Defects 3–5 live as a class, with a correction: the four index.ts fetch sites are already fail-closed (:525 collects into fetchErrors, :533–535 throws before any branch reset; :1097/:1158/:1190 → result.errors → run fails + failure issue). The live gaps are (a) drops that record no error at all — the fresh 2026-08-10 repro (lecture-python-programming.fr#29) reported success — and (b) a partial PR still ships when the error set is non-empty (index.ts:902)
Defect 3 (.bib) verified fixed 2026-08-11 on the harness against the deployed @v0=v0.25.0 (new scenario 27; evidence in #256 — the target PR delivered the backfilled entry). Defects 1/2/4/5/6 live. New finding for W1: metadata files[] under-declares (bib + state delivered, undeclared)
shadow-freeze lift (~2026-09-01 — arrived; still gated on #82's eval set for any model change)
W5 — CLI hardening
P2
D2
W6 — scheduled debt (Wave 2, eval set, cleanup)
P3
capacity
W1 was filed as v0.26.0; that number shipped 2026-08-17 as the ml round-1 release (#272–#274), and v0.27.0 shipped 2026-09-01 as the ml round-2 + prompt-caching release (#297, #293) with W1 still unstarted — so W1's work now targets v0.28.0.
Dependency spine
D1 (font mechanism) ──► W2 (scope: #178/#141 live or die here)
D2 (sync first-translate?) ──► W1 wording + W5 TOC insertion
D3 (bot identity) ──► #61 execution; #221 closes
#169 ──► W1 (test the code W1 edits)
#172 ──► W2 transforms (one home, not five sites)
#171 ──► #90.1/.4 closure
W1 (error set) ──► W3 reachability + review input
shadow window ──► W4
#82 baseline ──► any future DEFAULT_CLAUDE_MODEL change
Post-review arrivals
Arrived 2026-08-19 → 2026-09-01, not yet triaged into phases (filed same-day as their own issues per the convention; placing them is the next session's first triage job): #280 rebase force-push auto-closes open sync PRs · #282 (bug) a merged source PR can produce no sync run at all · #283identifyChangedSections heading-level collision · #284evaluateDiff hard-fails on ~2% unparseable responses · #286 audit nomination pass · #287 sync advances .translate/state past changes it never applied · #288forward -f duplicated frontmatter · #290 state-file writer must preserve unknown keys · #295 resyncs preferentially consume human-edited prose (three-edition evidence) · #296 ml round-2 tracker (shipped in v0.27.0; #189 Phase 3 graduation question open) · #300 Wikipedia cross-check for glossary drafting. Also filed 2026-08-27 and already closed: #292 prompt caching → #293.
Contributor PRs 2026-09-01.#289 (#156) and #291 (#254) both reviewed in full and upgraded on the contributor's branches (maintainerCanModify): byte-preserving TOC edits instead of yaml.dump round-trips (401 and 201 changed lines on the real lecture-python TOC, respectively, before the fix), #289 gains fetch-failure coverage and an accurate PR-body notice, #291 gains overlap-based part matching (identity matching lost the caption of exactly the part a lecture-adding sync touches), the rebase-replay site and 404-only target fetches. Both pre-empt W1 boxes 3 and 4 in part; the structured TOC merge (captions never taken from source) and the declared-vs-delivered assertion remain W1's. #225 closed unmerged (see close-candidates).
Triaged 2026-08-19
resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276 (bug, high-priority) — the class's sixth field instance, on the resync path: \translate-resync regenerates from the source PR's merge-time snapshot, so source edits that landed after that PR are silently reverted and the PR merges clean. On fa the stale regeneration merged after the repoint it reverted (2026-08-18, 03:37 → 03:52). Content was hand-restored the same day; a full post-incident measurement (2026-08-19: recorded source-sha vs the source's true last-touch commit, all 21 state files across the three targets, plus content probes — the ledger is in resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276) found the real residue smaller and different than first thought: zh-cn is fully consistent (its original batch PR had merged; the stale regeneration was correctly discarded); fr's state is correct but numpy.md is missing #595's two edits — the regeneration silently omitted the file after the original PR was closed unmerged, a per-file silent drop that is itself W1 evidence; fa has two stale state files (pandas, polars — the regeneration overwrote the repoint sync's correct SHAs) plus a three-line pandas_panel.md divergence introduced by the hand-restore, which restored a URL form the source itself had moved off. The two deterministic repairs merged and were byte-verified 2026-08-19 (fa#158, fr#38 in the target repos — no re-translation; forward was deliberately not used on fr numpy.md, a natively-reviewed lecture); the recorded-vs-actual mismatch set is now zero. W1 gains a detection box (code-cell invariance guard); the regeneration fix itself stays resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276. Until that lands, \translate-resync should not be used.
The sync is .md-only, so hand-localised _static/ assets can never be created, updated or repaired #271 (discuss) — the .md-only sync leaves hand-localised _static/ assets (figure notebooks, rendered PNGs, data builders) outside the sync in every direction: they can never be created, updated, or repaired by it. Class analysis, not a defect in shipped behaviour; unplaced pending a scoping decision. The single .ml orphan instance is recorded and deferred on the workspace side (QuantEcon/workspace-lectures#48, decision 2).
All four items below are applied on the repo (testing deleted, maintenance at #fbca04, core labels + refactor installed, relabels spot-checked: #169refactor, #103discuss, #89infrastructure). Kept as the record of what was changed.
Tracking issue for the 2026-08-10 review of all 67 open issues, verified against
main@ v0.25.0 (3db2f9f). Every issue was read in full; bug claims were checked against the current source,CHANGELOG.md, and comment threads (several issues carry status-changing comments their bodies don't reflect). Labels follow QEP-0002 (software set). This is a tracking parent and carries no Type label; the work phases are sub-issues.Where we stand (verified 2026-09-01 19:57 AEST)
main76d36d7(#299) — suite 1,538 green, lint--max-warnings 0, 0 prod advisoriesv0=v0.27=v0.27.0=125801c— alias moved, no #109-class lag. Headline: ml native-review round 2 (#297, glossary v0.4.0, rules 18 → 24, first deterministic ml lints), prompt caching on every translator call (#293),tool-review-injection/(#285),runReviewextraction (#278, #169 slice 1)src/github-content.ts) is nextsrc/composes cleanly in either order (#291 moved tosrc/toc-captions.ts), remaining cross-conflict is the CHANGELOGUnreleasedheader + bundle maplake モデル, Wikipedia cross-check) not yet applied; the promised lessons-learnt reply is outstanding since 2026-08-17. #300 filed for the Wikipedia cross-check idea\translate-resyncdiscuss, unplaced); see the arrivals sectionProject(set 2026-09-01 on the owner's instruction; wasTask). Not yet registered in the status-projects dashboard'sprojects.yml— a registration PR against QuantEcon/status-projects is the remaining step for it to be observedResume pointer (next session): (1) merge #289 then #291 once kp992 has looked — or after a week, since both are maintainer-upgraded and CI-green; (2) triage the twelve arrivals into W1–W6 (at least #282, #287, #290 look W1-shaped — no run / state advanced past unapplied changes / state-file writer clobbers keys); (3) #169 slice 2, then W1 proper; (4) #69 — apply the thread's rulings and post the reply.
The finding
The backlog has one dominant failure shape, named by #90 and re-confirmed by every production incident since: the failure path produces a success-shaped artifact. Files declared in sync metadata but never delivered (#90.3 / #156 / #222 / #256 — five field instances, the latest on v0.25.0, 2026-08-10); unbuildable PRs shipped after the run logged its own errors (#156); localisations silently overwritten and served to readers for 17 days (#254) or as tofu for months (#182); runs that never start and never say so (#234); and — arriving after this review — resync regenerating from the source PR's merge-time snapshot so that newer source edits are silently reverted and the PR merges clean (#276, the class's sixth field instance, 2026-08-18).
The ordering keeps the doctrine #94 validated: decisions and external clocks first; detection before repair; foundations before dependents.
Verified status changes (issues whose bodies are stale)
action.ymlnode24, esbuild target node24,engines >=24,@actions/core2.0.3 +@actions/github8.0.1,npm audit --omit=dev= 0. ESM-only 3.x/9.x residual = #177 F35's trigger. → closeindex.tsfetch sites are already fail-closed (:525collects intofetchErrors,:533–535throws before any branch reset;:1097/:1158/:1190→result.errors→ run fails + failure issue). The live gaps are (a) drops that record no error at all — the fresh 2026-08-10 repro (lecture-python-programming.fr#29) reported success — and (b) a partial PR still ships when the error set is non-empty (index.ts:902).bib) verified fixed 2026-08-11 on the harness against the deployed @v0=v0.25.0 (new scenario 27; evidence in #256 — the target PR delivered the backfilled entry). Defects 1/2/4/5/6 live. New finding for W1: metadatafiles[]under-declares (bib + state delivered, undeclared)writeConfighalf fixed (#246); the Phase-4 asset clobber is live (init.ts:495unconditionalcopyNonMarkdownFiles)checkStructuralParitypost-finalize (forward.ts:384) — the 2026-07 fence-wrap would be refused; residual = title-sanity checkgrep -c findTargetLocalReads dist-action/index.js= 0; guard wired intoforwardonlyThe phases (sub-issues)
index.tsat 0% coverage; slice 1 done #278)W1 was filed as v0.26.0; that number shipped 2026-08-17 as the ml round-1 release (#272–#274), and v0.27.0 shipped 2026-09-01 as the ml round-2 + prompt-caching release (#297, #293) with W1 still unstarted — so W1's work now targets v0.28.0.
Dependency spine
Post-review arrivals
Arrived 2026-08-19 → 2026-09-01, not yet triaged into phases (filed same-day as their own issues per the convention; placing them is the next session's first triage job): #280 rebase force-push auto-closes open sync PRs · #282 (
bug) a merged source PR can produce no sync run at all · #283identifyChangedSectionsheading-level collision · #284evaluateDiffhard-fails on ~2% unparseable responses · #286 audit nomination pass · #287 sync advances.translate/statepast changes it never applied · #288forward -fduplicated frontmatter · #290 state-file writer must preserve unknown keys · #295 resyncs preferentially consume human-edited prose (three-edition evidence) · #296 ml round-2 tracker (shipped in v0.27.0; #189 Phase 3 graduation question open) · #300 Wikipedia cross-check for glossary drafting. Also filed 2026-08-27 and already closed: #292 prompt caching → #293.Contributor PRs 2026-09-01. #289 (#156) and #291 (#254) both reviewed in full and upgraded on the contributor's branches (
maintainerCanModify): byte-preserving TOC edits instead ofyaml.dumpround-trips (401 and 201 changed lines on the real lecture-python TOC, respectively, before the fix), #289 gains fetch-failure coverage and an accurate PR-body notice, #291 gains overlap-based part matching (identity matching lost the caption of exactly the part a lecture-adding sync touches), the rebase-replay site and 404-only target fetches. Both pre-empt W1 boxes 3 and 4 in part; the structured TOC merge (captions never taken from source) and the declared-vs-delivered assertion remain W1's. #225 closed unmerged (see close-candidates).Triaged 2026-08-19
bug,high-priority) — the class's sixth field instance, on the resync path:\translate-resyncregenerates from the source PR's merge-time snapshot, so source edits that landed after that PR are silently reverted and the PR merges clean. On fa the stale regeneration merged after the repoint it reverted (2026-08-18, 03:37 → 03:52). Content was hand-restored the same day; a full post-incident measurement (2026-08-19: recordedsource-shavs the source's true last-touch commit, all 21 state files across the three targets, plus content probes — the ledger is in resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276) found the real residue smaller and different than first thought: zh-cn is fully consistent (its original batch PR had merged; the stale regeneration was correctly discarded); fr's state is correct butnumpy.mdis missing #595's two edits — the regeneration silently omitted the file after the original PR was closed unmerged, a per-file silent drop that is itself W1 evidence; fa has two stale state files (pandas, polars — the regeneration overwrote the repoint sync's correct SHAs) plus a three-linepandas_panel.mddivergence introduced by the hand-restore, which restored a URL form the source itself had moved off. The two deterministic repairs merged and were byte-verified 2026-08-19 (fa#158, fr#38 in the target repos — no re-translation;forwardwas deliberately not used on frnumpy.md, a natively-reviewed lecture); the recorded-vs-actual mismatch set is now zero. W1 gains a detection box (code-cell invariance guard); the regeneration fix itself stays resync regenerates from the source PR's merge-time snapshot — stale content reverts newer target edits #276. Until that lands,\translate-resyncshould not be used._static/assets can never be created, updated or repaired #271 (discuss) — the.md-only sync leaves hand-localised_static/assets (figure notebooks, rendered PNGs, data builders) outside the sync in every direction: they can never be created, updated, or repaired by it. Class analysis, not a defect in shipped behaviour; unplaced pending a scoping decision. The single.mlorphan instance is recorded and deferred on the workspace side (QuantEcon/workspace-lectures#48, decision 2).Close-candidates
D-2026-08-11-bot-identity-machine-user.md) · ml packet question: is the recurring minor/terminology demerit genuine, or a reviewer misread of keep-English policy? #250 — answer feeds W4's Reviewer finding descriptions are unreproducible and sometimes describe compliant text — stable verdicts, wandering evidence #249 rules. Also closed via W0: forward CLI writes lecture files without a trailing newline #116, claude-opus-5 costs report as $0.000 — missing pricing entry silently hides spend #230, Deprecate and remove legacy heading-map: frontmatter format #53, docs: heading-maps.md documents a key format the action has never written #91, docs: Update presentation for action-translation rename #7QEP-0002 label migration (repo level) — done, verified 2026-08-19
All four items below are applied on the repo (
testingdeleted,maintenanceat#fbca04, core labels +refactorinstalled, relabels spot-checked: #169refactor, #103discuss, #89infrastructure). Kept as the record of what was changed.testing(#5319E7): ml_metrics pinned-term retention: homograph + light-verb false positive (returns) #240 →bug, ml script-ratio gate compares a mean against a p10-p90 band, so it cannot detect the distribution shift it was designed to catch #229 →bug, Malayalam (ml) test project: benchmark vs native-speaker reference, calibration with Adisankar, go/no-go #189 → tracker (no Type); then delete the labelmaintenance#1D76DB→#fbca04(rename-in-place keeps history)discuss,do-not-merge,duplicate,wontfix, automation greys) +refactor(software extension)refactor; Design: route sync PRs by review verdict (auto-merge vs editor label) and make human review measurable #103/Decide whether positionCorrect should be deterministic — #148's deliberate residual, now measurable #155/fa: pin whether language/library proper nouns transliterate (پایتون) or stay Latin (Python) #205/Moving the sync bot to a GitHub App will silently break \translate-resync — Apps always report author_association=NONE #221 →discuss; node24: GitHub is already force-running the action on Node 24 (+ the @actions/* majors that clear the last advisories) #89 →infrastructure;high-priorityonly on the outliers (Silent data loss in the sync merge path — five ways translations vanish while the run reports success #90, sync opens a PR whose _toc.yml references a lecture the same run failed to translate #156, The #107 i18n-preservation guardrail is prompt prose and fails at scale — 21 lectures stripped, 9 now rendering tofu #182, sync silently first-translates lectures missing from the target — unreachable when it succeeds, invisible when it fails #222, Sync silently does not run when a merged source PR has an agent-authored head branch #234, The deterministic target-local-read guard is in neither the action bundle nor sync mode, and is blind to URL-form reads #253, Sync overwrites localised _toc.yml part captions with English, and nothing detects it #254, Six defects observed syncing a six-PR batch to lecture-intro.zh-cn (declared files silently dropped, toc clobbered, .bib never synced) #256)Full report:
.dev/log/2026-08-10-issue-review-workplan.md(landed via #265, merge77f09da).Generated by Claude Code