Tidy Cards and Demo Examples - 2026-11-05¶
Index ยท Taltal's ask on 2026-11-05: make Needs attention open and close on click, show only the last 3 recent runs, give every other messy element the same treatment, and give the live demo's releases and AI features examples, even fake ones, marked as fake.
Context¶
The dashboard and the run and cycle pages showed every row they had: eight recent runs, every failing test with its full message, every broken test, every stage's config. On the live demo the AI cards (failure summary, AI review, Ask) said "can't run here" and Releases was empty, because the demo has no AI key and its runs record no --release.
Decision¶
- Two shared pieces in
frontend/src/components/ui/.Cardtakescollapsible(click the title to open or close; remembered per card inlocalStoragekeyqasight.cardOpen),defaultOpenandcollapsedSummary(one line shown while closed).useShowMore/ShowMoreButtonshow the firstFIRST_ROWS(3) rows of a list with "Show all N" / "Show fewer". - Where they are used. Dashboard: Needs attention collapsible (open by default), its lists 3 rows each; Recent runs collapsible, 3 rows and an All runs link. Run page: failing tests 3 rows; Test mix, Details and Artifacts start closed. Cycle page: flaky and broken tests 3 rows; Stages starts closed. Release page: failing and fixed tests 3 rows. The Report page is left whole: it is a document people print and save as PDF.
- Made-up examples, demo only.
qasight_api/demo_examples.pywrites, from the demo's real runs and without calling any AI, an AI failure summary per failed run, an AI review, two Ask turns and two pretend releases. Onlyscripts/export_static_site.py(the demo) does this;qasight export-sitenever does. Each is marked (provider: "demo-example", manifestexamples) and the UI says "Fake example for the live demo" next to it. Details: GitLab Pages Demo.
Consequences¶
- A long list never pushes the next card off screen; everything is one click away.
- A card a viewer closed stays closed in that browser, including Needs attention. Its closed line still says how many cycles are red.
- Example releases come from patching the releases service's grouping for the length of the export, so the cached demo history stays real. When a real summary, review or release exists, the example is not written.