Fork Horse repository, listed by its owner. Publisher snapshot.

packages/forkhorse-dashboard/test/captures/fh-079/README.md

Snapshot at 34e3175

Containing directory

3,725 bytes · textView raw
1# FH-079 source checkpoint and pending evidence
2
3This directory is a capture plan, not captured or accepted evidence. Source and
4fixtures were authored from `c2114b97a320047e1c360306436e6828d812a670` on the
5packet branch. Heavy validation and captures are held until a fresh named grant.
6
7The controller separates owner-write `busy` from read `refreshing`. A complete
8state/activity read records an ISO `updatedAt`. Failed reads retain that snapshot
9and its activity, mark it stale and reject all owner handlers. A normal read does
10not disable actions; a write invalidates any older pending read before starting.
11Existing review, receipt, authorization and confirmation bindings still apply.
12
13The tab-row stamp reuses `relativeTime`, updates every 30 seconds and has no
14seconds counter. Failed reads retain their timestamp while a retry is pending.
15Stale controls stay visible with a focusable tooltip. Agent owner controls stay
16hidden. Review detail adds the approved slow-read explanation after 3 seconds,
17uses plain failure copy with a default-size secondary Try again only for retryable
18errors, and shows only a bounded response UUID to owners. A 404 has no retry
19button. Raw detail response bodies never reach the view.
20
21## Lean capture plan (pending; supersedes the original matrix)
22
23The 12:26 design ruling supersedes the earlier larger capture request. Capture
24only the five cases below, with the stamp in light mode at width 1600. All cases
25use the labeled offline fixture entry. No live account is contacted.
26No fixture or production endpoint was added. The freshness fixture adapter wraps
27existing review fixture routes, with read delays/errors only in the fixture build.
28
29| Scenario | Fixture URL suffix | Evidence required |
30| --- | --- | --- |
31| Successful populated snapshot | `fixtures.html?scenario=review-current#review` | Stamp, exact-time tooltip; populated content geometry unchanged |
32| Read in flight | `fixtures.html?scenario=freshness-refreshing#review` | Existing data and enabled actions, Refreshing… in tab row, no spinner or live region |
33| Failed read | `fixtures.html?scenario=freshness-failed#review` | Retained data/time, "Couldn't refresh. Last updated {age}.", ghost sm Try again, disabled Approve with its tooltip open |
34| Slow review | `fixtures.html?scenario=freshness-slow-review#review/review-1` | Initial Loading review…; approved caption after 3 seconds; completed detail after 15 seconds |
35| Failed review (owner) | `fixtures.html?scenario=freshness-review-error#review/review-1` | Plain error/caption, diagnostic ID, default-size secondary Try again |
36
37Retained-data fixture scenarios initiate their second read after one second. The
38in-flight scenario releases after 30 seconds. The failed-read and failed-review
39scenarios fail once; Try again succeeds. The fixture suite still covers owner
40write guards, open confirmations, fresh-read recovery and agent hiding; these
41cases do not expand the lean capture request. The live-paused banner now reads
42"Live updates paused. Last updated {age}."
43
44## Validation gates (all pending)
45
46- Dashboard fixture suite, including `test/freshness.test.ts`, and dashboard types.
47- Root `pnpm test` and `pnpm lint`, with lint zero; touched-package checks.
48- Fresh-clone suite plus D5 following `docs/receipts.md` offline isolation.
49- UI captures, geometry comparison, Saddler PASS and any requested re-shoot.
50- Coordinator reconciliation of shared dashboard/controller/style/test files
51  with FH-073/074/075/078 before integration.
52- Publication and main integration remain separately gated.
53
54No install, test, typecheck, lint, build, D5, browser capture, live access,
55deployment, cross-merge or upstream edit was performed for this checkpoint.
56