Session handover — 2026-07-09¶
Continues from session-2026-07-08-pt6-handover.md. One slice this session:
the emdash upgrade (pt6's "0.9.0 → 1.0.0" reopen trigger). Target was
corrected to 0.28.1 during scoping — npm's 1.0.0 is an accidental reverted
publish, not the head. Everything landed in commit 0721248; both workers
redeployed (garvanbay 3ee7bfd5, WCP 72c15db9), live D1s migrated 036–050.
Where to look¶
- known-issues "emdash upgraded 0.9.0 → 0.28.1" — the canonical slice
record: versions/pins, worker contract (0.19.0 cron),
images: falserationale, migration + recovery anchors (Time Travel bookmarks + SQL exports atbuilds/<domain>/d1-pre-0281-export.sql, gitignored). - known-issues "Header / nav menu" (UPDATE 2026-07-09) — the slice's real stop: the save race reproduced on 0.28.1 (1 of 2 UI trials lost the edit; upstream #1158 was closed wrong). Option A chosen: upgrade shipped, operator editability stays blocked, explicit reopen trigger written. The WCP pre-fix-build residual is closed (redeploy verified).
- known-patterns, one new + one updated entry:
- The biggest version number on npm may not be the head — the 1.0.0 accidental-publish trap; dist-tags + lockstep-sibling verification.
- "Saved ✓" that never persists — status updated with the 0.28.1 reproduction evidence.
- ADR-0008 "Platform note — emdash 0.28.1 worker contract" — the two fleet-template facts every future per-site worker inherits.
- Upstream filing draft:
docs/pipeline/upstream-emdash-1158-repro.md— review, post as a comment on emdash #1158, then delete the draft. - Scorecard — full 10-page gate re-run against the upgraded garvanbay
worker: SHIP held, composite 91.3 (S 88.5 / T 100 / G_det 88.3 —
byte-identical to pt6; upgrade is render-neutral). Ours capture regenerated
(
shots-ours-0281/); pt6 capture kept assection-backgrounds.ours.pre-0281-upgrade.bak.json(all gitignored).
Slice notes¶
- Migration was rehearsed first on a miniflare import of the live garvanbay export, then applied live via first-request boot migration on both workers. Content verified intact both times (10 pages / 1 globals).
- Typecheck is green for the first time (5 pre-existing errors fixed +
the upgrade-forced repeater
media_picker→text_inputswap onfcr.generic-section). Block-Kit repeaters remain scalar-only at 0.28.1 — the repeater-item image known-issue stays open. - Dead
lib/cms/fcr-plugin.tsdeleted;playwrightis now a declared root devDependency (the upgrade'snpm installpruned the old ad-hoc install and broke the capture lane mid-session). - Local dev miniflare D1 was reset to a pristine copy of the live garvanbay
export (0.9.0 schema — next
astro devboot re-runs migrations; that's expected).
Residual / next priorities¶
- Post the upstream repro (draft above) — operator editability now waits on upstream, not on us; the known-issues reopen trigger says when to re-test.
- Deployed-admin OTP spot-check — Access gate verified challenging, but
an actual One-time-PIN login + admin poke on
emdash.dcathal.orgwasn't exercised (needs the operator email). Two minutes when convenient. - Muted-tone render bug — unchanged from pt5 (debug the render path on the deployed home, not the data).
- pt5 residuals unchanged: re-match dup-collapse pipeline fix, 3 pages
dropping 1 band each,
book-an-appointmentgrid-vs-sections, promotescripts/.tmphelpers. - ADR-0009 Slice 5 (Wix API content plane) / Slice 6 (calibration) remain the strategic next step.