Session handover — 2026-07-04 (pt2)¶
Pointer note. Second session of the day, continuing on branch
spike-0-one-site-operational (still not merged to master). Picked
up "Next priority 1" from the earlier session-2026-07-04-handover.md and
closed it, plus fixed a portfolio-wide icon gap surfaced while verifying.
Branch / publish note¶
Code commits are on spike-0-one-site-operational. Wiki edits (this file
+ the known-issues/known-patterns updates below) are committed and
pushed to origin so the published wiki updates — but the branch's
code still isn't on master, so the deployed-from-master picture lags
until that merge (still open, see below).
What changed — where to look¶
Priority 1 done — CMS slug routing (commit 32badfb):
- apps/cms/src/pages/[slug].astro — SSR catch-all → getEmDashEntry →
canonical FcrBlocks (ADR-0004 Path A), mirroring index.astro. Static
routes take precedence; missing/empty → rewrite("/404"); /home →
301 /. 404.astro now sets status 404 so the rewrite is a real 404.
- The 8 garvanbay pages that had D1 data but 404'd now render live. The
"slug routing not added" bullet in known-issues.md is deleted
(resolved).
Icon-map gap fixed (commit fa92cd6):
- packages/components-v3/.../ui/icon/icon.astro — registered
circle-check/menu/clock/search (were firing placeholders),
latent check/shield, and email→mail / twitter→X aliases. The
default checklist bullet circle-check was unmapped, so every checklist
portfolio-wide showed the literal circle-c placeholder text.
- Shared primitive — scaffold.js copyTree's it into per-site builds too;
additive-only, no regression. linkedin remains the only unmapped icon
firing (no simple-icons glyph — deferred).
known-issues.md:
- Deleted resolved slug-routing bullet.
- Rewrote "LinkedIn icon falls to placeholder" → now the only unmapped
icon firing; records the empirical scan (5 icons → 1) and the
custom-SVG fix path; notes google-reviews (in enum, not firing).
known-patterns.md — 2 new entries (Components/pipeline):
- astro dev reads a miniflare D1, not data.db — a third store;
local content verification needs wrangler d1 execute DB --local.
- Icon static-map gaps surface as truncated placeholder text
(circle-c = circle-check.slice(0,8)); enumerate the whole gap set
via a deployed-HTML missing icon: scan, don't fix one at a time.
Deployed state¶
- Worker
replatform-emdash-demo(personalcathaldempseyaccount),emdash.dcathal.org. Redeployed twice this session; current versionb8963c51(post icon-map). Deploy usesCF_API_TOKEN_CD(fromfcr-dashboard/.env.local) viaCLOUDFLARE_API_TOKEN, overriding the fcrmedia OAuth session — the OAuthwhoamiis the wrong account. - Remote D1 unchanged (content already present; routing was the only gap — no reseed needed).
Verified live¶
All 8 slugs 200 with content on emdash.dcathal.org; unknown → 404;
/home → 301. Deployed missing-icon placeholders dropped from 5 distinct
icons (206 total) to 1 (linkedin). company-secretarial checklist now
renders real <svg> check bullets.
Next priorities¶
- Merge decision —
spike-0-one-site-operational→masterstill open (carried over from pt1). The published-from-master gap persists until then. - Priority 2 (carried over) — extend Option A image fields to
Hero / CTA-strip / Header (mechanical repeat of the
fcr.aboutfix) so they stop rendering blank in the admin. - LinkedIn custom SVG — closes the last icon placeholder if wanted.
- Contact form real submission + move
/contactontoFcrBlocks.
Milestone framing still lives in
scope-2026-07-04-one-site-operational.md.