Change evidence report

PR evidence viewer utility sidebar refactor

PR 1892 replaces the presentation-style evidence archive and report shell with a restrained dashboard layout. A permanent desktop sidebar keeps navigation and report metadata visible, while narrow screens retain a compact sticky utility. The static renderer now reserves orientation-aware screenshot dimensions so lazy image loading does not move long reports.

Range
e5e70ab2b (merge-base with main)…4f5fda639 (captured implementation head)
Source state
feat/1884-evidence-utility-sidebar at 4f5fda639, pushed as draft PR #1892; this report is the following evidence-only commit
Generated

Reviewer brief

Outcome and scope

Evidence review is now organized around persistent utility

The archive and report use the same viewport shell as the CRM dashboard: a stable sidebar, a separately scrolling content pane, compact bordered surfaces and clear page sections. Desktop reviewers keep report navigation and metadata in view. Mobile reviewers keep the product identity and section links in a sticky compact utility without horizontal page overflow.

What this report proves

Matched screenshots show the archive and the same sample report at base e5e70ab2b and implementation head 4f5fda639. Browser measurements establish layout persistence, responsive collapse, anchor clearance and stable document height. The report does not prove production deployment or replace pull request review and CI.

Claim map

Evidence coverage

Each material changed behavior or state maps to direct evidence or an explicit gap.

Behavior or claimEvidenceStatus
The evidence archive uses a permanent utility sidebar and a denser dashboard hierarchyMatched 1440 by 1000 archive screenshotsCovered
Individual reports keep section navigation and report metadata visible beside the contentMatched 1440 by 1000 report screenshots plus a sidebar position measurement before and after content scrollingCovered
Narrow screens retain a compact sticky utility without obscuring anchored content or causing horizontal page overflowMatched 390 by 844 report screenshots and live browser geometry measurementsCovered
Lazy screenshots reserve their rendered dimensions, including rotated JPEGsStable browser scroll-height measurement and an EXIF orientation regression testCovered
The evidence JSON schema and publishing workflow remain compatibleFocused schema and renderer tests, package typecheck and production Vite buildCovered

Observed change

Review evidence

Evidence is grouped by the reviewer question each item addresses.

Evidence archive

Screenshot

The archive becomes a compact review dashboard

Same PR 1800 source report and 1440 by 1000 viewport. The base uses a large presentation hero. The proposed archive keeps workspace status in a full-height sidebar and makes the report queue the primary content.

Base: large hero and presentation cards use most of the initial viewport.Before
Base evidence archive with a large headline card above the report list
Head: archive status stays in the sidebar and the compact report queue is immediately scannable.After
Updated evidence archive with a permanent left sidebar and compact pull request report card

Desktop report

Screenshot

Report navigation and metadata remain visible

Same PR 1800 report and 1440 by 1000 viewport. The content is unchanged. Its navigation and source metadata move from a wide hero and horizontal strip into the permanent sidebar.

Base: report metadata fills the hero and section links scroll away with the document.Before
Base report with a large hero, five metadata columns and horizontal section navigation
Head: section links and source metadata occupy a stable utility sidebar beside denser report content.After
Updated report with permanent left navigation and metadata beside outcome cards

Mobile report

Screenshot

The utility condenses instead of consuming the narrow viewport

Same PR 1800 report at 390 by 844. The desktop sidebar becomes a sticky product bar and horizontal section utility. Report metadata remains available on desktop, while mobile gives reading width to the evidence itself.

Base: the oversized report hero occupies the initial mobile viewport and section navigation follows below it.Before
Base mobile report with a large title and summary filling the first viewport
Head: compact sticky identity and section links remain above a readable report header.After
Updated mobile report with sticky product and section bars above compact report content

Browser measurements

Table

The static layout stays stable across viewport and image states

Measurements came from the built site served locally, not from source inspection.

ScenarioObserved result
Desktop sidebar after content scrollTop stayed 0px; width stayed 280px; content scrollTop reached 1200px
1024px responsive reportBefore and after evidence pairs collapsed to one 680.562px column
Lazy image layoutContent scrollHeight stayed 28,470px before and after entering evidence; all 32 images carried validated width and height attributes
390px reportDocument scrollWidth equalled the 390px viewport; anchored evidence began at 116px below the 98.875px sticky utility
Keyboard focusMobile section link used a visible 2px accent outline inset by 2px inside the horizontal scroller

Confidence

Validation

Pass

Focused evidence tests

16 pass, 0 fail, 42 assertions across scripts/pr-evidence/report.test.ts and packages/pr-evidence/src/site.test.ts

Pass

Evidence package typecheck

bun run --filter @sauna-crm/pr-evidence typecheck exited 0

Pass

Production evidence build

Vite 6.4.3 built the archive and standalone report pages successfully

Pass

Desktop and narrow browser checks

Live Chromium checks covered 1440 by 1000, 1024 by 900 and 390 by 844 viewports, persistent utilities, responsive collapse, focus visibility, anchor clearance, page width and image layout stability

Pass

Independent review

A design reviewer and a code reviewer found responsive, focus, contrast and image-dimension defects. The final source-only follow-ups reported no remaining material findings

Limits

Known issues, risks, and gaps

One intentional static-navigation limit remains

Section links do not track scroll position The report remains a self-contained, script-free artifact. The permanent section links navigate correctly but do not highlight the section currently in view. Avoiding client JavaScript keeps rendering deterministic and preserves the restrictive Content Security Policy.

Captures use the existing PR 1800 sample report The viewer refactor does not change report content. PR 1800 is the only checked-in source report at the merge-base, so each pair uses that same report and source images to isolate the shell change.