61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
# 07. Verify the remake — build + diagnostics + harness walk-through
|
|
|
|
meta:
|
|
id: yazi-remake-07
|
|
feature: yazi-remake
|
|
priority: P1
|
|
depends_on: [yazi-remake-03, yazi-remake-04, yazi-remake-05, yazi-remake-06]
|
|
tags: [verification, tests-required]
|
|
|
|
objective:
|
|
|
|
- Confirm the yazi remake meets every exit criterion via a clean build, zero diagnostics, and a full harness walk-through of every tab and depth.
|
|
|
|
deliverables:
|
|
|
|
- A passing `bun run build`
|
|
- `lens_diagnostics mode=all` with zero errors across edited files
|
|
- Harness frames + state proving the parent|current|preview 1:3:3 layout, drill/pop behaviour, tab switching, and status bar across all six tabs
|
|
|
|
steps:
|
|
|
|
- Run `bun run build` — expect "Build complete"
|
|
- Run `lens_diagnostics mode=all severity=error` — expect 0 findings across all session-edited files
|
|
- Run the drive harness (`scripts/tui-harness.tsx`) walk-through:
|
|
- `init` → confirm no sidebar, 3 columns at 1:3:3, focus on current, bottom tab strip visible
|
|
- Feed: `l` (depth 0→1, parent fills) → `l` (1→2) → `h` (2→1) → `h` (1→0, parent blanks) ; `j`/`k` move current
|
|
- `2` → MyShows: drill show→episodes, parent reflects
|
|
- `3` → Discover: category→results, parent shows categories
|
|
- `6` → Settings: sections→items→editor, parent shows the previous list at each depth
|
|
- `4` → Search: query|results|detail at 1:3:3; type + Enter works
|
|
- `5` → Player: blank|transport|notes at 1:3:3
|
|
- Capture the status bar content (active tab + depth + counts + now-playing + tab strip) from a representative frame
|
|
|
|
tests:
|
|
|
|
- Build: `bun run build` exits 0 with "Build complete"
|
|
- Diagnostics: `lens_diagnostics` mode=all → 0 errors
|
|
- Harness (integration/e2e): the walk-through above produces the expected frames & state (parent blank at depth 0, populates on drill, blanks on pop; digits switch tabs; h noop at depth 0)
|
|
|
|
acceptance_criteria:
|
|
|
|
- `bun run build` passes
|
|
- `lens_diagnostics` mode=all reports zero errors
|
|
- All six tabs render 3 stable columns at 1:3:3
|
|
- Parent pane is blank at depth 0; drill fills it with the previous-depth list; pop empties it
|
|
- `h` is a noop at depth 0; `l` drills; `1-6`/`[`/`]` switch tabs; `j/k` move current only
|
|
- No sidebar; focus starts on current; bottom bar shows active tab + depth + counts + tab strip
|
|
|
|
validation:
|
|
|
|
- `bun run build 2>&1 | tail -3` → "Build complete"
|
|
- `lens_diagnostics` mode=all severity=error → "No error issues…"
|
|
- Harness `state nav` after `init` shows `pane === 0` (current), not -1
|
|
- Harness frames for Feed depth 0/1/2 show the parent slot transition blank→list→list
|
|
|
|
notes:
|
|
|
|
- This is the gate for the whole feature — do not mark done if any criterion fails; open a blocker task instead
|
|
- If the harness reveals a visual regression (e.g. parent collapses, ratios off), file it against the responsible task (02 or 03) rather than patching here
|
|
- Save a representative `.harness/last-frame.txt` snapshot if a visual reference is useful for future sessions
|