@@ -76,18 +76,38 @@ string the author meant to write. That is exactly why all three bugs shipped. On
7676 ` fitHomography ` checks ` dst ` too. ` roi ` → ` shape ` throughout the edit overlay.
7777- ** Every new test was mutation-checked** : reverted each fix, confirmed the test fails.
7878
79+ ### Published — v0.4.1 released, demo re-baked (same session)
80+
81+ Ordering per the usual rule: release first (the asset IS the distribution; ` dist/ ` is gitignored),
82+ then bake the demo ** from the downloaded asset** so ` demo == release ` is demonstrated, not assumed.
83+
84+ - ** ` v0.4.1 ` ** tagged + released. Asset ` roidraw.bundle.js ` , ** 117,752 B** ,
85+ sha256 ` 65583ef60357f0e4851a1f640dd4bfcd85af54acc280ea1a766b5151775b6d40 ` .
86+ ` /releases/latest ` verified to resolve to it, and the downloaded asset is byte-identical to the
87+ locally built + tested bundle.
88+ - Also synced ` package-lock.json ` 's root version, stale at ` 0.3.0 ` since ` b8d503f ` . ` npm ci ` still OK.
89+ - ** Demo re-baked** : ` gallantlab/viewer-stories-group-roidraw ` @ ` a554d90d2a ` . ` viewer.html ` already
90+ carried the two ` <script> ` tags, so this was a one-file swap — done via the GitHub contents API
91+ (PUT with the old blob sha), ** no clone** : the repo is ~ 200 MB and the previous session's clone was
92+ 1.5 GB. The old blob was confirmed to be exactly the v0.4.0 asset (` 29c71e99… ` ) first.
93+ - Live check: ` https://gallantlab.org/viewer-stories-group-roidraw/roidraw.bundle.js ` serves the
94+ v0.4.1 asset byte for byte, and the served bundle emits ` xmlns:inkscape ` with a self-closing,
95+ empty ` sulci_labels ` layer and no ` <text> ` . ** Note ` raw.githubusercontent.com ` served a stale CDN
96+ copy for minutes afterwards** — check the contents API or Pages, not raw, when verifying a push.
97+
7998### Open / next time
8099
81100- ** Unchanged and still the top gap:** ` svgoverlay.py ` itself has never run on roidraw's output.
82101 Needs a subject + importable ` cortex ` . The Python test reproduces the parser's * queries* , which is
83102 as close as CI can get here.
84103- The browser ` _import ` (` FileReader ` ) and ` _download ` (` Blob ` /anchor/` revokeObjectURL ` ) paths still
85104 have zero coverage; the 4 s teardown exists for Firefox and is untested.
86- - ** The 2026-07-09 CDP live-viewer check predates this rewrite** — it validated the old broken
87- markup. Re-run it before the next release.
88- - ** A new release is needed** : ` dist/ ` is gitignored, so ` /releases/latest ` still serves the v0.4.0
89- bundle with the broken exporter. Cut v0.4.1, then re-bake the demo viewer (see
90- [[ roidraw-release-artifact-ordering]] ). pycortex docs PR #656 is still OPEN.
105+ - ** The 2026-07-09 CDP live-viewer check predates the export rewrite** — it validated the old broken
106+ markup, and was NOT re-run before v0.4.1. The bundle is statically verified (the exporter is pure
107+ and parser-tested); what remains unexercised in a browser is the adapter wiring + the download.
108+ - ** pycortex docs PR #656 is still OPEN.** Its prose describes the * old* merge instructions ("paste
109+ or merge the fragment"), which is now known to be a data-loss footgun — a second
110+ ` inkscape:label="sulci" ` layer replaces the subject's own. Fix that PR before merging.
91111- Lesson recorded in memory as ` string-tests-cannot-check-a-format ` .
92112
93113## 2026-07-08/09 — Sulcus drawing (v0.4.0): spec → plan → 12 TDD tasks → SHIPPED (release + demo + docs PR)
0 commit comments