Skip to content

M5 (Fable half): launch surface + first-visit polish#12

Merged
MANVENDRA-github merged 1 commit into
mainfrom
m5-fable
Jul 4, 2026
Merged

M5 (Fable half): launch surface + first-visit polish#12
MANVENDRA-github merged 1 commit into
mainfrom
m5-fable

Conversation

@MANVENDRA-github

Copy link
Copy Markdown
Owner

Ships the Fable half of M5 — the launch surface. Everything a first-time visitor (or an unfurl
bot) touches, screenshot-iterated on the real GPU. With this, M5's build work is done; only the
launch itself (X/HN) remains.

README — rebuilt to SPEC §7's launch shape

Hook → hero gif → demo link + the honest number (0.106 ms GPU/frame, 157× headroom) →
"Why this exists" (flat 2D dashboards; money and PII deserve to be seen) → substance.
The drill-down and 3D flame views finally have images (m2-drill.png, m3-flame.png un-ignored;
the drill shot is fresh from this branch's pick-e2e run).

Demo first-visit polish

  • Unfurl cardsog:/twitter: meta + og.png (1200×630) + a comet favicon.svg. A shared
    demo link now renders a real card on X/Slack instead of a bare URL.
  • No more silent blank canvasonError threaded through createRiver/createFlame;
    adapter-null and init throws render the full-screen error state with actionable copy.
  • Live-mode dead-end fixed — with no gateway answering, an honest "no gateway connected"
    notice appears after 4s: what Fathom is listening for, how to feed it, one-click switch to the
    real capture. Self-dismisses if a local server connects (no hard block).
  • Onboarding — river legend now hints click a comet → its span (the M2 drill-down was
    undiscoverable).
  • Minimal mobile pass — ≤720px compact panels (flame panel owns the top on phones),
    ≤480px canvas-first. No layout rearchitecture.
  • Humane replay-fetch error copy.

Reproducibility fix

app/record.mjs still had the fat gif recipe — the shipped 6.7 MB hero was hand-tightened.
The recipe (16fps · 760px · 128 colors · 8s) now ships in the recorder; hero re-recorded with the
polished UI on the 4070 (6.17 MB), og.png regenerated from the new still.

Verification (PROOF §8c)

build green · pick-check 21/21 · cost-check 50/50 · pick-e2e 8/8 · 4-state screenshot
iteration on the RTX 4070 (desktop river / live notice / mobile river / mobile flame) — 2 defects
caught and fixed (mid-word code wrapping; flame-over-HUD overlap on phones).

Docs synced: README / CLAUDE / ARCHITECTURE / SPEC / PROOF.

- README rebuilt to SPEC §7's launch shape: hook -> hero gif -> demo link +
  the honest 0.106 ms / 157x number -> 'Why this exists' -> substance;
  m2-drill.png + m3-flame.png now tracked and embedded.
- Unfurl cards: og:/twitter: meta + og.png (1200x630) + comet favicon.svg;
  a shared demo link now renders a real card on X/Slack.
- Init errors surface on-screen: onError threaded through createRiver/
  createFlame (adapter-null was a silent blank canvas; shared copy in
  capabilities.ts NO_ADAPTER_MSG).
- Live mode with no gateway: honest 'no gateway connected' notice after 4s
  (ui/LiveNotice.tsx; self-dismisses on connect, one-click switch to replay).
- River legend hints the M2 pick: 'click a comet -> its span'.
- Humane replay-fetch error copy; minimal mobile pass (<=720px compact
  panels, flame owns the top on phones, <=480px canvas-first).
- record.mjs gif recipe fixed to the shipped one (16fps/760px/128c/8s) so
  app:record reproduces the hero; hero re-recorded on the 4070 (6.17 MB).

Verified: build green; pick-check 21/21; cost-check 50/50; pick-e2e 8/8;
4-state screenshot iteration (2 defects caught + fixed). PROOF §8c.
@MANVENDRA-github
MANVENDRA-github merged commit 03f2773 into main Jul 4, 2026
1 check passed
@MANVENDRA-github
MANVENDRA-github deleted the m5-fable branch July 4, 2026 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant