Commit Graph
2 Commits
Author SHA1 Message Date
1045c6ca98 Gracefully handle the no-image decision page (#502)
* Gracefully handle the no-image decision page

Tested the new-work path without image generation and fixed what broke:

- A text-only card's back face (First viewport, The case) was unreachable:
  the Details flip chip only rendered inside the media block. Cards with no
  imagery now render their full read on the front and skip the back face.
- A hero/board that fails to load (retired catalog URL, offline shell) sat
  as a dark void with a zoom cursor. The slot now collapses to a field
  painted from the card's own palette with an "artwork unavailable" pill;
  broken inspiration PIPs remove themselves.
- Sketchless catalog art rendered unlabeled as the card's face, reading as
  the promise of the build. It now carries the same "inspiration" label and
  hover title the PIP uses.
- The --schema example pointed at catalog URLs that 404 (missing family
  prefix); updated to the real asset paths and noted the text-only front
  behavior in the schema prose.

Extends e2e test (e) with the front-read and label assertions and adds
test (f) for the broken-image fallback.

AI-assisted (Claude Code).

Co-Authored-By: Claude Code <noreply@anthropic.com>

* fix: address PR review bot findings

- cursor[bot]: the unavailable-art scrim painted over the flip chips and
  swallowed their clicks; it now passes pointer events through and the
  chips render above it.
- Copilot: a palette-less card whose art failed still read as a dark void
  and kept the stale Inspiration tooltip; the slot now falls back to the
  graphite field in CSS and the tooltip is removed with the art.

Test (f) now covers both: a broken card with back facts must still flip
via Details, and a palette-less broken card gets the labeled fallback.

AI-assisted (Claude Code).

Co-Authored-By: Claude Code <noreply@anthropic.com>

---------

Co-authored-by: Claude Code <noreply@anthropic.com>
2026-08-03 18:45:32 -07:00
Paul BakausandClaude Fable 5 6ece0e588f Add deterministic new-work interactive smoke suite
A cheap, LLM-free E2E tier for the interactive parts of new-work, mirroring
the two-layer live-e2e pattern (deterministic now, opt-in LLM tier later).

- generate-image.mjs: IMPECCABLE_IMAGE_GEN_FAKE=1 writes a deterministic
  offline image (SVG with wrapped prompt + SYNTHETIC COMP label, or a valid
  palette-stripe PNG carrying the prompt/marker in a tEXt chunk). Same CLI
  contract, no key, no network, $0.00 cost line.
- tests/new-work-e2e/user-bot.mjs: scripted user bot (module + CLI) that
  resolves the serve-question daemon from the workspace and drives the real
  page via Playwright (pick, re-roll + steer, canon, tab close).
- tests/new-work-e2e.test.mjs: node --test coverage of the serve-question
  cycles (pick + CHOSEN CARD, re-roll + --update re-deal, canon + CANON
  CHOSEN, tab-close exit-4, text-only card) plus fake image determinism.
- Registered as the opt-in new-work-e2e suite; added test:new-work-e2e.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 12:23:07 -07:00