NS4 slice: Add build/test job output panel #26

Closed
opened 2026-06-20 23:28:17 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: Run configured or explicitly entered build/test commands with spawn/cancel/status and output capture.

AUTHORITY: Parent #4 NS4: Repository workbench; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: repo/001-002; req: ui/002).

AGENT AUTHORITY:

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

PARENT: #4 via explicit issue link and parent checklist.

SCOPE: The smallest source/docs/tests needed to make this behavior real and verified.

BOUNDARIES: No hidden command discovery that mutates the project.

ACCEPTANCE: A fixture command emits an error; the panel captures output and jump-to-file/line works when parseable.

VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for the intended payoff and adversarial tests for realistic failure, boundary, or regression cases. If no implementation test command exists yet, create/record the canonical command in AGENTS.md as part of the slice.

BLOCKERS: none

GOAL: Implement this vertical slice to the ACCEPTANCE above, keep the repo clean, cite relevant req: anchors in code/tests where applicable, and close only after verification passes.

OBJECTIVE: Run configured or explicitly entered build/test commands with spawn/cancel/status and output capture. AUTHORITY: Parent #4 `NS4: Repository workbench`; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: repo/001-002; req: ui/002). AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes. - Handoff state: committed clean, tracker commented/closed. PARENT: #4 via explicit issue link and parent checklist. SCOPE: The smallest source/docs/tests needed to make this behavior real and verified. BOUNDARIES: No hidden command discovery that mutates the project. ACCEPTANCE: A fixture command emits an error; the panel captures output and jump-to-file/line works when parseable. VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for the intended payoff and adversarial tests for realistic failure, boundary, or regression cases. If no implementation test command exists yet, create/record the canonical command in AGENTS.md as part of the slice. BLOCKERS: none GOAL: Implement this vertical slice to the ACCEPTANCE above, keep the repo clean, cite relevant `req:` anchors in code/tests where applicable, and close only after verification passes.
tmk241 added this to the v1 milestone 2026-06-20 23:28:17 +00:00
tmk241 added the sliceready-for-agentgoal labels 2026-06-20 23:28:17 +00:00
Author
Owner

Implemented in commit caba99fb40 (Add explicit job output panel).

Verification:

  • zig fmt src/main.zig src/job.zig src/session.zig src/tui.zig: pass
  • zig build test: pass
  • zig build: pass
  • zig build run -- --help: pass
  • redgate lint / health: pass

Regular tests: explicit local commands run in a cwd, emit job:spawned and job:status:exit_N rows, capture stdout/stderr into the shared list panel, and parse path:line:column output so job_open_selected opens the file at the matching byte. TUI fixture test runs a failing script, filters to src/main.zig:2:5, and jumps into the editor at the error location.
Adversarial tests: empty/invalid commands and cwd are rejected, spawn failures produce visible job:status:spawn_error_... rows, unparseable output cannot be opened, unsafe paths like ../secret are rejected, and failed job navigation does not corrupt the current buffer. job_status and job_cancel honestly report foreground-only idle/no-running-job state rather than pretending to manage background work.

Boundary: synchronous explicit command output panel only. No hidden command discovery, background scheduler, terminal shell, project mutation, staging/committing, or long-running job manager added.

Implemented in commit caba99fb401d (Add explicit job output panel). Verification: - zig fmt src/main.zig src/job.zig src/session.zig src/tui.zig: pass - zig build test: pass - zig build: pass - zig build run -- --help: pass - redgate lint / health: pass Regular tests: explicit local commands run in a cwd, emit `job:spawned` and `job:status:exit_N` rows, capture stdout/stderr into the shared list panel, and parse `path:line:column` output so `job_open_selected` opens the file at the matching byte. TUI fixture test runs a failing script, filters to `src/main.zig:2:5`, and jumps into the editor at the error location. Adversarial tests: empty/invalid commands and cwd are rejected, spawn failures produce visible `job:status:spawn_error_...` rows, unparseable output cannot be opened, unsafe paths like `../secret` are rejected, and failed job navigation does not corrupt the current buffer. `job_status` and `job_cancel` honestly report foreground-only idle/no-running-job state rather than pretending to manage background work. Boundary: synchronous explicit command output panel only. No hidden command discovery, background scheduler, terminal shell, project mutation, staging/committing, or long-running job manager added.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#26