NS4 slice: Add build/test job output panel #26
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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:
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.Implemented in commit
caba99fb40(Add explicit job output panel).Verification:
Regular tests: explicit local commands run in a cwd, emit
job:spawnedandjob:status:exit_Nrows, capture stdout/stderr into the shared list panel, and parsepath:line:columnoutput sojob_open_selectedopens the file at the matching byte. TUI fixture test runs a failing script, filters tosrc/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../secretare rejected, and failed job navigation does not corrupt the current buffer.job_statusandjob_cancelhonestly 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.