Skip to content

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: false rationale, migration + recovery anchors (Time Travel bookmarks + SQL exports at builds/<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 as section-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_pickertext_input swap on fcr.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.ts deleted; playwright is now a declared root devDependency (the upgrade's npm install pruned 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 dev boot re-runs migrations; that's expected).

Residual / next priorities

  1. 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.
  2. Deployed-admin OTP spot-check — Access gate verified challenging, but an actual One-time-PIN login + admin poke on emdash.dcathal.org wasn't exercised (needs the operator email). Two minutes when convenient.
  3. Muted-tone render bug — unchanged from pt5 (debug the render path on the deployed home, not the data).
  4. pt5 residuals unchanged: re-match dup-collapse pipeline fix, 3 pages dropping 1 band each, book-an-appointment grid-vs-sections, promote scripts/.tmp helpers.
  5. ADR-0009 Slice 5 (Wix API content plane) / Slice 6 (calibration) remain the strategic next step.