The verification gate found that Task 04's core deliverable was never implemented: Player and Search pages are not routed through <YaziPaneRow>, so Player renders a single full-width column and Search's three columns sit at equal thirds (31/32/31) instead of the target 1:3:3 ratio (~14/43/43). - Mark task 07 status BLOCKED with a pointer to the blocker evidence - Add 07-blocker-task-04-player-search.md documenting the missing implementation, evidence (player/search harness frames), failing exit criteria, and a fix plan for the task 04 do-over
3.0 KiB
3.0 KiB
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] status: BLOCKED # see .harness/verification-07.md + tasks/yazi-remake/07-blocker-task-04-player-search.md
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=allwith 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/kmove current 2→ MyShows: drill show→episodes, parent reflects3→ Discover: category→results, parent shows categories6→ Settings: sections→items→editor, parent shows the previous list at each depth4→ Search: query|results|detail at 1:3:3; type + Enter works5→ 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 buildexits 0 with "Build complete" - Diagnostics:
lens_diagnosticsmode=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 buildpasseslens_diagnosticsmode=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
his a noop at depth 0;ldrills;1-6/[/]switch tabs;j/kmove 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_diagnosticsmode=all severity=error → "No error issues…"- Harness
state navafterinitshowspane === 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.txtsnapshot if a visual reference is useful for future sessions