NS10 slice: Cover editor workflows and panels in browser-terminal E2E #67

Closed
opened 2026-06-21 14:50:34 +00:00 by tmk241 · 2 comments
Owner

OBJECTIVE: Add browser-terminal E2E scenarios for the core user workflows that make mim useful: open files/folders/new paths, edit/save/dirty quit, search, diagnostics, job output, provider format/code action panels, and panel navigation/focus.

AUTHORITY: Parent #65; NS8 parent #43; KEYMAP.md; REQUIREMENTS.md req: session/001-004, ui/001-002, repo/001-002, coding/006-007, testing/001-004.

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes; update/comment parent #65.
  • Handoff state: committed clean, tracker commented/closed.

PARENT: #65 NS10 via explicit parent link and parent checklist.

SCOPE: E2E scenarios, fixtures, assertions, screenshots/transcripts for user workflows.

BOUNDARIES:

  • Do not use fixture/headless evidence alone.
  • Do not close real iPhone dogfood blockers from this evidence.
  • Do not expand into every LSP/tool feature; cover representative workflows and provider identity.

REGRESSION CLASS: catches workflow regressions where editor features work in unit tests but fail through terminal focus, panels, dirty state, save/quit, search, diagnostics, jobs, or provider-selection flows.

EVIDENCE ARTIFACTS: per-workflow screenshots, semantic transcripts, final buffer/file assertions, panel focus logs, job/diagnostic/provider row snapshots, and command receipts.

REQUIREMENT IMPACT: protects existing session/ui/repo/coding/testing requirement authority; update authority if new workflow proof becomes a durable release gate.

ACCEPTANCE:

  • E2E covers opening an existing file, a new path, and a directory/file picker path.
  • E2E covers typing text with spaces, saving, dirty quit prevention, clean quit, and non-interactive EOF behavior where relevant.
  • E2E covers current-file search and project/file panel navigation with screenshots and semantic assertions.
  • E2E covers diagnostics panel/jump, job panel/cancel or failure output, and provider-ambiguous format/code-action selection.
  • Panel focus regressions are visible: wrong panel item, stale panel stack, or broken Enter/arrows/Page keys fail a scenario.

VERIFICATION:

  • zig build terminal-e2e
  • zig build test
  • zig build v1-smoke
  • redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md

BLOCKERS: depends on terminal harness #69 and at least one matrix/scenario convention #66.

SLICE_CONTRACT:
objective: Add browser-terminal E2E coverage for core editor workflows and panels.
authority: #65, #43, KEYMAP.md, REQUIREMENTS.md session/ui/repo/coding/testing rows.
acceptance: E2E proves open/edit/save/search/panel/diagnostic/job/provider workflows and fails on panel/focus regressions.
verification: terminal-e2e plus canonical gates.
non_goals: full LSP integration, real iPhone dogfood closure.
blockers: terminal harness exists.

OBJECTIVE: Add browser-terminal E2E scenarios for the core user workflows that make `mim` useful: open files/folders/new paths, edit/save/dirty quit, search, diagnostics, job output, provider format/code action panels, and panel navigation/focus. AUTHORITY: Parent #65; NS8 parent #43; KEYMAP.md; REQUIREMENTS.md req: session/001-004, ui/001-002, repo/001-002, coding/006-007, testing/001-004. AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes; update/comment parent #65. - Handoff state: committed clean, tracker commented/closed. PARENT: #65 NS10 via explicit parent link and parent checklist. SCOPE: E2E scenarios, fixtures, assertions, screenshots/transcripts for user workflows. BOUNDARIES: - Do not use fixture/headless evidence alone. - Do not close real iPhone dogfood blockers from this evidence. - Do not expand into every LSP/tool feature; cover representative workflows and provider identity. REGRESSION CLASS: catches workflow regressions where editor features work in unit tests but fail through terminal focus, panels, dirty state, save/quit, search, diagnostics, jobs, or provider-selection flows. EVIDENCE ARTIFACTS: per-workflow screenshots, semantic transcripts, final buffer/file assertions, panel focus logs, job/diagnostic/provider row snapshots, and command receipts. REQUIREMENT IMPACT: protects existing session/ui/repo/coding/testing requirement authority; update authority if new workflow proof becomes a durable release gate. ACCEPTANCE: - E2E covers opening an existing file, a new path, and a directory/file picker path. - E2E covers typing text with spaces, saving, dirty quit prevention, clean quit, and non-interactive EOF behavior where relevant. - E2E covers current-file search and project/file panel navigation with screenshots and semantic assertions. - E2E covers diagnostics panel/jump, job panel/cancel or failure output, and provider-ambiguous format/code-action selection. - Panel focus regressions are visible: wrong panel item, stale panel stack, or broken Enter/arrows/Page keys fail a scenario. VERIFICATION: - `zig build terminal-e2e` - `zig build test` - `zig build v1-smoke` - `redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` BLOCKERS: depends on terminal harness #69 and at least one matrix/scenario convention #66. SLICE_CONTRACT: objective: Add browser-terminal E2E coverage for core editor workflows and panels. authority: #65, #43, KEYMAP.md, REQUIREMENTS.md session/ui/repo/coding/testing rows. acceptance: E2E proves open/edit/save/search/panel/diagnostic/job/provider workflows and fails on panel/focus regressions. verification: terminal-e2e plus canonical gates. non_goals: full LSP integration, real iPhone dogfood closure. blockers: terminal harness exists.
tmk241 added the slice label 2026-06-21 14:50:34 +00:00
Author
Owner

Progress committed in 19f7354 (Cover project search terminal workflow).

What changed:

  • Added terminal E2E scenario project-search-panel with a repo fixture containing main.zig and target.zig.
  • The workflow drives real terminal keys through Space s p, types findme, opens the project-search results panel, asserts panel [search], target.zig, and findme, closes the panel, then quits cleanly.
  • The scenario has a key budget (key_events=13, max_key_events=13) and artifacts like the rest of the NS10 matrix.

Verification before commit:

  • zig build terminal-e2e
  • zig build test
  • zig build
  • zig build v1-smoke
  • redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md

Evidence:

  • .zig-cache/terminal-e2e/project-search-panel/manifest.tsv: search panel scenario, 13-key budget pass, CR/LF/chrome roles clean.
  • .zig-cache/terminal-e2e/project-search-panel/visible-controls.normalized.txt: panel [search], target.zig, and findme.
  • .zig-cache/terminal-e2e/project-search-panel/keystrokes.tsv: raw search workflow input.

Not closing #67 yet: the issue acceptance still asks for job panel/cancel or failure output. Current repo has job model/test code, but no terminal-reachable job panel/action path to drive from KEYMAP without inventing a new workflow. Remaining #67 gap is therefore a bounded implementation slice: expose a deterministic job/failure output panel through existing leader/panel patterns, then add a terminal E2E row for it.

Progress committed in `19f7354` (`Cover project search terminal workflow`). What changed: - Added terminal E2E scenario `project-search-panel` with a repo fixture containing `main.zig` and `target.zig`. - The workflow drives real terminal keys through `Space s p`, types `findme`, opens the project-search results panel, asserts `panel [search]`, `target.zig`, and `findme`, closes the panel, then quits cleanly. - The scenario has a key budget (`key_events=13`, `max_key_events=13`) and artifacts like the rest of the NS10 matrix. Verification before commit: - `zig build terminal-e2e` ✅ - `zig build test` ✅ - `zig build` ✅ - `zig build v1-smoke` ✅ - `redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` ✅ Evidence: - `.zig-cache/terminal-e2e/project-search-panel/manifest.tsv`: search panel scenario, 13-key budget pass, CR/LF/chrome roles clean. - `.zig-cache/terminal-e2e/project-search-panel/visible-controls.normalized.txt`: `panel [search]`, `target.zig`, and `findme`. - `.zig-cache/terminal-e2e/project-search-panel/keystrokes.tsv`: raw search workflow input. Not closing #67 yet: the issue acceptance still asks for job panel/cancel or failure output. Current repo has job model/test code, but no terminal-reachable job panel/action path to drive from KEYMAP without inventing a new workflow. Remaining #67 gap is therefore a bounded implementation slice: expose a deterministic job/failure output panel through existing leader/panel patterns, then add a terminal E2E row for it.
Author
Owner

Completed with final job-output coverage in 70d8582 (Cover job output terminal workflow). Previous progress for project-search coverage was 19f7354.

Terminal E2E workflow coverage now satisfying #67:

  • Project search panel: project-search-panel drives Space s p, query entry, search result panel, close, and quit; asserts panel [search], target.zig, and findme with a 13-key budget.
  • Job output/cancel panel: job-cancel-output-panel drives Space t x, asserts panel [job-output], job:profile:build, and job:status:cancelled:user with a 6-key budget.
  • File picker/panel workflow: existing directory-panel-narrow.
  • Diagnostics/provider workflows: existing lsp-assisted-coding covers diagnostics panel/jump plus provider hover/signature/format/save; multi-file-coding-loop covers multi-file edit/save; color/chrome/viewport roles are covered by the matrix-level assertions from #68.

Verification before final commit:

  • zig build terminal-e2e
  • zig build test
  • zig build
  • zig build v1-smoke
  • redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md

Evidence from latest run:

  • .zig-cache/terminal-e2e/job-cancel-output-panel/manifest.tsv: key_events=6, max_key_events=6, key_budget=pass, bare_lf=false.
  • .zig-cache/terminal-e2e/job-cancel-output-panel/visible-controls.normalized.txt: panel [job-output], job:profile:build:scope:project:provider:zig-build, job:status:cancelled:user.
  • .zig-cache/terminal-e2e/project-search-panel/manifest.tsv and .zig-cache/terminal-e2e/project-search-panel/visible-controls.normalized.txt: project search panel/result proof.
Completed with final job-output coverage in `70d8582` (`Cover job output terminal workflow`). Previous progress for project-search coverage was `19f7354`. Terminal E2E workflow coverage now satisfying #67: - Project search panel: `project-search-panel` drives `Space s p`, query entry, search result panel, close, and quit; asserts `panel [search]`, `target.zig`, and `findme` with a 13-key budget. - Job output/cancel panel: `job-cancel-output-panel` drives `Space t x`, asserts `panel [job-output]`, `job:profile:build`, and `job:status:cancelled:user` with a 6-key budget. - File picker/panel workflow: existing `directory-panel-narrow`. - Diagnostics/provider workflows: existing `lsp-assisted-coding` covers diagnostics panel/jump plus provider hover/signature/format/save; `multi-file-coding-loop` covers multi-file edit/save; color/chrome/viewport roles are covered by the matrix-level assertions from #68. Verification before final commit: - `zig build terminal-e2e` ✅ - `zig build test` ✅ - `zig build` ✅ - `zig build v1-smoke` ✅ - `redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` ✅ Evidence from latest run: - `.zig-cache/terminal-e2e/job-cancel-output-panel/manifest.tsv`: `key_events=6`, `max_key_events=6`, `key_budget=pass`, `bare_lf=false`. - `.zig-cache/terminal-e2e/job-cancel-output-panel/visible-controls.normalized.txt`: `panel [job-output]`, `job:profile:build:scope:project:provider:zig-build`, `job:status:cancelled:user`. - `.zig-cache/terminal-e2e/project-search-panel/manifest.tsv` and `.zig-cache/terminal-e2e/project-search-panel/visible-controls.normalized.txt`: project search panel/result proof.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#67