# Work card media and evidence access Host browser proof recorded 2026-09-24 at source `4133cdf5398db99f58fd0b3398ebfec22f288245`. The work board discovers committed images, videos, reports and logs from change citations and the associated evidence records. A reviewed override selects the coherent-shell card's QEMU screenshot; it remains explicitly labelled QEMU. The gallery and evidence menu do not alter completion or physical verification state. New evidence is discovered on the next normal site build, including before a proposal completes or archives. ```sh python3 tests/test_work_board.py python3 tests/test_render_specs.py python3 scripts/build_site.py python3 tests/work_card_media_browser.py ``` - Discovery: 17 tests passed, including new images and videos arriving while a proposal remains open, revision consistency, missing/uncommitted media, private sibling names, symlinks, duplicate handling and reviewed video covers. - Spec rendering: 21 tests passed. - Full site: 235 pages, 7,663,684 bytes, 27.96 seconds. All 12 output checks passed; output is below the existing 8 MiB and 120 second budgets. - Playwright Chromium: both 1440×1000 desktop and 390×844 mobile passed cover coordinate clicks, inline gallery, real video playback, independent evidence menu, local Markdown report links, Enter/Escape and focus restoration. No horizontal page/dialog overflow or JavaScript errors occurred. The browser command serves the local build and maps revision-pinned raw media URLs to the corresponding local repository files. It actually decodes and advances the existing system-controls MP4. This is host website behavior, not remote deployment or a new board interaction. Reports render Markdown; raw logs, tables and media link directly to their pinned revision to keep the static bundle bounded. Dialog media stays inert until a card opens; videos have controls and never autoplay. The coordinator visually inspected these public browser captures: ![Desktop evidence menu on a whole clickable card](desktop-card.png) ![Mobile inline gallery with the QEMU provenance label](mobile-dialog.png) The initial card/media implementation was published at : Pages run `35958300081` succeeded and the page contained source revision `1005d4f5a538`. ## Viewport gallery and document modal Additional host browser proof recorded 2026-09-24 at source `046ae6082a92b281d0a0e4e05343dfa29b524027` using: ```sh python3 scripts/build_site.py python3 -u tests/work_card_media_browser.py ``` The build passed: 238 pages, 8,043,984 bytes, 12.99 seconds and all 12 output checks. Desktop (1440×1000) and mobile (390×844) Chromium both passed: - Images fit the available viewport without cropping; arrow navigation and actual mobile touch swipes move through the gallery. - Video starts paused, plays and advances when requested, and stops/releases its source when closed. - Inline and header evidence open document modals; Markdown is rendered and logs/data use bounded text previews. The board URL stays unchanged. - Escape/Close returns to the same card and restores focus; header previews also work without opening a card. No JavaScript errors occurred. The coordinator visually reviewed the desktop gallery and mobile document captures below. The browser routes pinned raw artifacts to local files; this is host website proof, not new device evidence or remote deployment proof. The explicit original-file action may open the original separately; ordinary card evidence clicks stay in the modal. Publication of this extension is recorded separately after CI. ![Largest-fit desktop gallery](gallery-desktop.png) ![Rendered Markdown in the mobile document modal](file-mobile.png) ## Viewer playback update At source `28cc0fbde32475f59a00f5e48737faa6c9a4c183`, the viewer starts video playback when a reader opens or selects a video. Card previews remain paused. Space toggles playback with focus on Close or on native video controls, without dismissing the gallery or toggling twice. Native controls, Escape/Close, stop-on-close, and card focus restoration remain available. This supersedes the earlier no-autoplay viewer behavior above. `python3 scripts/build_site.py` passed: 239 pages, 8,060,379 bytes, 28.60s. `python3 -u tests/work_card_media_browser.py` passed desktop and mobile, including automatic video advance, Space pause/resume from Close and native video focus, and all prior media/document modal checks. Browser autoplay restrictions may still require pressing Play; controls remain usable. ## Published autoplay and keyboard proof At 2026-09-24 05:39 UTC, [CI run 35960674736](https://github.com/knewter/tdisplay-k230/actions/runs/35960674736) completed successfully for exact source `b2478b5dcb53d742a0c5a2523c74668a2e15901c`. The public contained that full revision. An independent headless Chromium check visited this public URL directly, with **no asset routing override**. Desktop 1440×1000 and mobile 390×844 both passed: the actual system-controls MP4 decoded and advanced on opening; Space paused and resumed it with focus on Close, then paused and resumed it with focus on the native video; the media modal remained open; Close stopped the video, removed its source and returned focus to the trigger. Neither viewport reported a page JavaScript error. This is published website/browser evidence, not a physical K230 panel observation. The public probe used Python Playwright Chromium against the published URL, with its real pinned media requests and no mocked responses. The source build and local browser regression are recorded above; this paragraph records the additional deployed-revision check required before archive. The archive's later published revision must be checked separately after it is pushed. ```sh python3 tests/work_card_media_public_browser.py --revision b2478b5dcb53d742a0c5a2523c74668a2e15901c ```