From de01d2676b4791b5e7e634dafcc53d164b13c657 Mon Sep 17 00:00:00 2001 From: Matt McKay Date: Wed, 23 Sep 2026 19:35:00 +1000 Subject: [PATCH] =?UTF-8?q?dev:=20STATE.md=20=E2=80=94=20v0.29.3=20release?= =?UTF-8?q?d;=20page=20re-verified=202026-09-23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every bullet checked against live state: shipped releases (v0.26.0–v0.29.3) moved from In flight to Recently landed or folded into Older releases; the #276 moratorium line corrected to the 2026-08-20 ruling; Next resumes at today's fr engine queue (#324–#327); tests 1,590/67; prod advisories 2. Co-Authored-By: Claude Opus 5.5 (1M context) --- .dev/STATE.md | 419 ++++++++++++++++++++------------------------------ 1 file changed, 165 insertions(+), 254 deletions(-) diff --git a/.dev/STATE.md b/.dev/STATE.md index 134f71c..fa53be4 100644 --- a/.dev/STATE.md +++ b/.dev/STATE.md @@ -1,4 +1,4 @@ -verified: 2026-09-21 +verified: 2026-09-23 # STATE @@ -7,165 +7,52 @@ Roadmap detail lives in the work-plan tracker **#257**, not here (PLAN.md predat ## In flight -- **v0.29.3 release cut 2026-09-23** (payload #328 `a4fe00a`, on top of #322 `079b3c7` and #323 - `ede10e6`) — patch: `fr` glossary v1.2 (Namespace → Espace de nommage, Heads → Face, the - standard-normal context) from the French editor's second review round, which reaches French - syncs only once `@v0` moves; plus the harness reset fix and the release rate check (step 4b), - both of which first run on this gate. §4a gate and the 4b rate-check summary are recorded on the - release PR. -- **v0.29.2 released 2026-09-21** (release PR #318 `5f74d74`; payload #317 `62504c1`, on top of - #315 `cd41558`; §4a gate **completed**: 84/84 sync runs, 28/28 delivery + 28/28 - `engineVersion: 0.29.2` verdicts per lane, scenario 17 on `.ml` delivered; `v0.29` = `v0` = - `5f74d74`; GitHub release published; `@v0` smoke `engineRef: v0` on all three lanes — tally - on #318) — patch: the scope sentence on the `ml` exercise rule that v0.29.1's failed gate - called for, carrying the editor's round-3 answers that v0.29.1 never delivered. **Round 4 - (`numpy`, lecture-python-programming.ml#23) regenerated at `@v0` the same day**: three draws, - draw 1 sent (bare endings 1 / 37 / 2), one `ml_repair.py` comma applied and disclosed — the - first repaired seed; arm `experiments/ml-benchmark/arms/2026-09-21-round4-numpy-v0.29.2/`. - Harness note: the reset left one PR from the previous gate open on `.ml` (closed by hand). - W1 (#259) still targets v0.30.0. **2026-09-23 close-out**: the reset survivor's cause was - `gh pr list` with no `--limit` — fixed with a post-reset check on **#322** (closes #321); the - gate's one-draw blindness (a ~40% defect passed three gates) is **#320**, decided as a local - N-draw rate check — `tool-test-action-on-github/rate-check.sh`, release step 4b, on **#323** - (v0.29.2 reads 0/12, v0.29.0 4/12). **Next engine-side: the rule-2 arm** (rewrite around the - editor's everyday-speech test, judged held-out before it ships). -- **v0.29.1 is tagged but NOT released (2026-09-21)** — its §4a gate came back 83/84: scenario 17 - on the `.ml` lane failed twice (the model wrapped a plain `## Exercises` list in - `{exercise-start}`; structural parity refused the file). `v0` = `v0.29` = `a6fda54` (v0.29.0) - still; no GitHub release. Measured at twelve draws per arm the defect is **latent since - v0.28.0** (5/12 at v0.29.0) and aggravated by the #315 rules (11/12); one scope sentence on the - exercise rule takes it to 0/24, and the action path delivers 2/2. The fix ships as - **v0.29.2**. Log: `.dev/log/2026-09-21-v0291-gate-scenario17.md`. -- **v0.29.1 release PR merged and tagged 2026-09-21 — gate failed, NOT released (entry above)** - (release PR #316 `7fe78a5`; payload #315 `cd41558`) — patch: the Malayalam editor's round-3 - answers (detail in the next entry). Nothing in it is a feature; the one behavioural - correction is the `-ഉം` comma rule, where v0.29.0 had shipped the wrong guess. §4a tally - (83/84) is on #316; CHANGELOG marks the version `[YANKED]`. Its contents ship in v0.29.2; - **once v0.29.2's floating tags move**, round 4 (`numpy`, lecture-python-programming.ml#23) is - regenerated at `@v0` — the editor has been asked to hold off until then. W1 (#259) still - targets v0.30.0. -- **ml round-3 answers encoded (2026-09-21, #315 merged as `cd41558`; tagged in v0.29.1, ships in - v0.29.2)** — the - editor answered lecture-python-programming.ml#22 on 2026-09-19. `ml` rules 27 → 28, glossary - v0.7.0. Two answers overturned a guess: the comma between `-ഉം` items is **always** there - (v0.29.0 shipped "phrases only"), and *draw* is not a light verb (left unencoded — both forms - are his). Confirmed: English plural + suffix for retained nouns (own rule + lint), *prefer* - English, *provide* → `നൽകുക` (both acceptable). Further Reading boundary settled as the - reference section (`D-2026-09-21-…`), which unblocks the code move under #260. **Open: the - rule-2 rewrite** around his everyday-speech test — held for a held-out judge run, not shipped - on his say-so alone. Round 4 (lecture-python-programming.ml#23) **will be regenerated at - `@v0` once this is released** (Matt, 2026-09-21; the editor has been asked to hold off) — see - the log entry `2026-09-21-ml-round3-answers`. -- **v0.29.0 released 2026-09-18** (release PR #312 `a6fda54`; payload #311 `847ca9f`; §4a gate - **completed**: 84/84 sync runs, 28/28 delivery + 28/28 `engineVersion: 0.29.0` verdicts per - lane; `v0.29` = `v0` = `a6fda54`; GitHub release published; `@v0` smoke read-off on #312) - — headline: the third Malayalam native review encoded (`ml` rules 23 → 27, - glossary v0.6.0), the `style_examples` glossary mechanism (no set shipped: evaluated - held-out and set aside), the Further Reading decision record, and the first regeneration - test with a held-out lecture and a blind pairwise judge. **W1 (#259) did not make it and - retargets to v0.30.0.** Tally on #312. Round 4 (`numpy`) is generated at `@v0` now. -- **ml round 3 encoded on #311 (2026-09-18, merged as `847ca9f`; released by v0.29.0)** — the - third inline native review (44 suggestion blocks on lecture-python-programming.ml#13, - `matplotlib`) found every round-2 class clean and a residue of *style* (clause-boundary - commas, verb aspect, clause order). Payload: `ml` rules 23 → 27, glossary v0.6.0, and a new - mechanism — `style_examples` in the glossary file, rendered as `STYLE EXAMPLES:` in the - cached stable block on every write path. New admission test: a pattern becomes a rule only - if it recurs. Decision record `D-2026-09-18-ml-further-reading-lists-stay-english`. First - regeneration test with a **held-out lecture** and three draws per arm - (`experiments/ml-benchmark/arms/2026-09-18-round3-rules-exemplars-sonnet5/`): in-sample - similarity to the editor's text 0.845 → 0.93, held-out unchanged (0.814 → 0.809) apart - from comma density (0.56 → 0.72 vs his 0.82). A blind pairwise Opus 5 judge (2,570 - judgements, no position bias) then found the rules preferred 55 : 45 held out and rules + - the shipped pairs 57 : 43 (p = 0.054), while contrastive / 56-pair / no-rules example - variants all judged 50 : 50 — the ml example set was removed from the PR (mechanism - ships, no data) and the exemplar line is closed pending round-4 editor data. - ml#13 merged `a24e925`. Editor's open questions: lecture-python-programming.ml#22 (none blocks a release). - Targets **v0.29.0**; round 4 (`numpy`) is generated after it ships. Log: - `.dev/log/2026-09-18-ml-round3.md`. -- **v0.28.1 release cut 2026-09-14** (fix #308 `aae38d1`; release PR #309 `3de9024`) — patch: sync mode fires only for PRs - merged into the default branch. Trigger: QuantEcon/lecture-python-programming#629 (theme - v3.0.0) merged into the long-lived `jb2` branch on 2026-09-12 and all three deployed sync - workflows fired — `types: [closed]` has no base-branch filter and neither the job `if:` - nor the action looked at the base — opening fr#79, fa#166, zh-cn#105 for unpublished - content. Two-layer fix: `branches: [main]` in every published sync template (sweep test - now requires it) + `mergedIntoDefaultBranch` in `validatePREvent` and the resync path, - compared against `repository.default_branch`. Tidy-up outside the repo, same day: the - three downstream PRs closed unmerged; `branches: [main]` PR'd into the deployed workflows - (lecture-python-programming#630, lecture-python-intro#846, lecture-python.myst#1056 — - all three **merged 2026-09-14**; verified 2026-09-21). §4a gate **completed 2026-09-14**: - 84/84 sync runs, 28/28 delivery + 28/28 verdicts per lane at `engineVersion: 0.28.1`; - `@v0` = `v0.28` = `3de9024`, alias smoke (scenario 01) reports `engineRef: v0` on all - three lanes; GitHub release published. W1 (#259) targeted v0.29.0 then, now v0.30.0. -- **v0.28.0 released 2026-09-03** (#303 `07e7c64`; release #304 `9284fbc`; §4a gate **completed**: - 84/84 sync runs, 28/28 delivery + 28/28 stamped verdicts per lane; `@v0` = `v0.28` = `9284fbc`, - smoke-verified on all three lanes) — headline: the - Malayalam editor's ml#12 answers encoded and the verbatim exercise-family policy - (`verbatim-directives.ts` on all three write paths + the `verbatimDirectives` review - diff-check; decision record `D-2026-09-03-ml-all-exercise-content-stays-english` - supersedes the 09-01 record), glossary v0.5.0, rules 24 → 23, harness scenario 28. - Validated pre-merge with the local bundle on a scenario-28 harness PR (positive and - negative). **W1 (#259) retargets to v0.29.0.** Round 4 (`numpy`) can be generated at `@v0`. -- **2026-09-01 PR sweep** — all six open PRs reviewed, merge order set. #294/#297 merged - and released (v0.27.0). **#289** (#156) and **#291** (#254 interim) reviewed in full and - **upgraded in place on kp992's branches** (`maintainerCanModify`): both had a `yaml.dump` - round-trip that turned a one-line `_toc.yml` change into a whole-file rewrite (401 / - 201 changed lines on the real lecture-python TOC) — both now edit the TOC text in place - and verify by parse; #289 gains fetch-failure coverage + 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, 404-only target - fetches, and moved to `src/toc-captions.ts` so it composes with #289. Both CI-green, - mergeable, awaiting kp992 (who merged `main` into #289 on 2026-09-20; #291 untouched since - 09-01 — both still open 2026-09-21). **Merge order #289 → #291.** #291 no longer closes #254 - (W1's structured merge is the end state). **#225 closed** unmerged: #118 cause unfixed, - D2 removes the path, D1 gates #178. Two #297 residuals filed as their own issue - (ml lint regex misses `functions-നെ`; rule 11 dangling colon). #69 untouched. - Tracker #257 re-stamped with a contract-form `## Where we stand` section. -- **v0.27.0 release cut 2026-09-01** — headline: the second inline native-review round - encoded (ml glossary v0.4.0 + rules 18 → 24 + the first deterministic ml lints, #297; - regeneration-checked in the same PR, decision record - `D-2026-09-01-ml-exercise-statements-stay-english`), plus prompt caching on every - translator call (#293), `tool-review-injection/` (#285), the `runReview` extraction - (#278, #169 slice 1) and the harness editors block (#275). W1 (#259) did not make it - and now targets v0.28.0. §4a gate status is recorded on the release PR. -- **v0.26.0 release cut 2026-08-17** — headline: the first inline native-review round - encoded (ml glossary v0.3.0 + 18-rule set, #272; regeneration-verified, #273), plus - verdict provenance (#247), config-preserving writers (#243), newline-terminated - writers (#266/#267), harness scenario 27, and the resync-gate `startsWith` alignment. - §4a gate **completed 2026-08-17** (verified 2026-08-19: harness scenario PRs - 02:36 → GitHub release Latest 02:50; `@v0` = `v0.26` = `e4e5710`, so the alias - moved — no #109-class lag this time). The ml calibration programme is now - one-lecture-per-round: stale seeds ml#2–#5 closed, round 2 open (ml#7, `functions`, - engine `8625221`). -- **Prompt caching shipped 2026-08-28** (#292 → PR #293, v0.27.0-bound; outside #257): - translator prompts now send `[stable(cache_control), volatile]` blocks; forecast - ~45-50% off sync-run cost, live-verified. Telemetry semantics changed: `input-tokens` - is now the *uncached* remainder — total prompt = input + cache-creation + cache-read - (two new outputs); a zero cache-read on a multi-call run means the prefix broke. - Remaining half of FUTURE.md idea 7 (`count_tokens` sizing) still open. +- **fr typography fixes #324 and #325** (filed 2026-09-23 from the French editor's second + round) — implementation branches in progress: **#324** (`fix/fr-elision-apostrophe`) sets the + `fr` elision apostrophe before inline markup as U+2019; **#325** + (`fix/typography-raw-html-blocks`) stops U+00A0 being inserted inside raw `