Skip to content

SPA: capture a README-worthy dashboard screenshot (follow-up to #654) #660

Closed

Description

@mforce

Follow-up to #654, which added the dashboard capture to tools/simulation/ui/specs-screenshots/screenshots.spec.ts but does not commit an image or embed one in the README. The spec stays because it asserts the screen renders with real data; the picture it produces is not publishable yet.

Why #654 did not ship the image

Two problems, both visible in the capture taken during that slice:

  1. The fixture's flock catalog dominates the tiles. Simulation fixture: over-cap bands for customers, bird movements and inventory movements (split from #511) #627 seeds ~100 Active Sim Z Flock Catalog NNN flocks for the picker's paging tests, and none of them ever gets a daily entry. SPA: dashboard rework — capture-status tiles, 14-day sparkline, stock as a stacked bar #654's capture-status panel sorts flocks with no entry first (INV-9, so a missed house is never hidden by the 12-tile cap), so the twelve visible tiles are all catalog flocks reading NO ENTRY, and the two real houses (Sim House A/B, which do have production) sit behind the "94 more flocks" link.
  2. The composition does not fit the frame. At the screenshots config's 1280x800 viewport the tile grid alone fills the page; the 14-day trend, the stock bar and the recent-sales list are below the fold.

Separately, the capture during #654 was taken after a smoke run and photographed that run's leftovers (E2E Flock …, E2E Customer …, $9,999,999.99 orders). That hazard is now documented in tools/simulation/ui/README.md: reset the fixture, then capture, with no smoke run in between.

What a fix looks like (pick one, or something better)

  • Give the capture a taller viewport (its own project entry in playwright.screenshots.config.ts) so tiles + trend + stock + sales are all in frame.
  • Capture as a persona or on a farm whose visible flocks have entries, so the tiles show real figures rather than a wall of alarms — possibly a small dedicated seed profile rather than the picker-catalog fixture.
  • Or decide the dashboard is not a README screen after all and close this, leaving docs: generated screenshots of the running SPA in the README #549's three images as they are.

Acceptance

  • docs/images/dashboard.png is committed and embedded in README.md with a caption, or this issue is closed as won't-fix with the reason recorded.
  • The image shows the panels the screen is for, not only the alarm state.
  • It is captured on a freshly reset fixture (README caveat), and tools/simulation/ui/README.md's image count matches what ships.

Activity

  1. mforce commented on Sep 2, 2026

    @mforce
    OwnerAuthor

    Shipped in #665, merged as 930ea308.

    docs/images/dashboard.png is committed and embedded in README.md. Captured at 1280×1180 via its own Playwright project — the route this issue named first — so the tile grid, Last 14 days with its hen-day summary, Stock with the grade breakdown, and Recent sales are all in one frame. The other three captures keep 1280×800 and are byte-identical.

    The first attempt did not meet this issue and said so rather than claiming otherwise. The driver's runbook said "capture and commit", which is not what this issue asks; the resulting 1280×800 shot was twelve alarm tiles with everything else below the fold. The implementer flagged it, and the driver had also written alt text naming the trend and stock panels — content that was not in the frame, which matters because alt text is what a screen-reader user receives instead of the picture.

    Criterion 2, honestly: the tiles do still all read No entry. That is the fixture's real state, not a framing failure — #627 seeds ~100 catalog flocks that never receive a daily entry, nothing is recorded for the capture's "today", and the missing-first sort (INV-9) puts them first by design. The panels the screen is for are now in shot, which is what the criterion asks. This issue's alternative route — a dedicated seed profile so the tiles show real figures — was deliberately not taken, being a fixture change well outside the slice. If the all-alarm tile grid is unacceptable for a README, that is a fresh decision and worth its own issue.

    Criterion 3 met: tools/simulation/ui/README.md's count now says four, and a stale clause explaining "why the Dashboard is deliberately not among them" was removed.

  2. added a commit that references this issue on Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions