NS4 slice: Add one terminal escape-hatch panel #27

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

OBJECTIVE: Provide one terminal job panel for shell commands inside the shared panel lifecycle.

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 terminal tabs, panes, sessions, or tmux-like management.

ACCEPTANCE: A trace runs a simple shell command, shows output, exits/cancels cleanly, and returns to the editor.

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: Provide one terminal job panel for shell commands inside the shared panel lifecycle. 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 terminal tabs, panes, sessions, or tmux-like management. ACCEPTANCE: A trace runs a simple shell command, shows output, exits/cancels cleanly, and returns to the editor. 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:18 +00:00
tmk241 added the sliceready-for-agentgoal labels 2026-06-20 23:28:18 +00:00
Author
Owner

Implemented in commit 2ec9840837 (Add terminal escape hatch panel).

Verification:

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

Regular tests: terminal_run <cwd> <command> executes a one-shot shell command in the requested cwd, captures stdout/stderr plus terminal:status:exit_N rows into the shared list panel, and terminal_exit closes back to the editor. terminal_status and terminal_cancel expose honest foreground-only lifecycle rows (idle, no_running_terminal) rather than pretending to manage background sessions.
Adversarial tests: empty/newline shell commands are rejected, shell failures surface as exit/status + stderr rows, and rejected terminal commands do not corrupt the current editor buffer.

Boundary: synchronous terminal escape hatch only. No PTY, interactive terminal emulator, background terminal sessions, panes/tabs, hidden command discovery, terminal persistence, or project mutation added.

Implemented in commit 2ec98408372e (Add terminal escape hatch panel). Verification: - zig fmt src/job.zig src/tui.zig: pass - zig build test: pass - zig build: pass - zig build run -- --help: pass - redgate lint / health: pass Regular tests: `terminal_run <cwd> <command>` executes a one-shot shell command in the requested cwd, captures stdout/stderr plus `terminal:status:exit_N` rows into the shared list panel, and `terminal_exit` closes back to the editor. `terminal_status` and `terminal_cancel` expose honest foreground-only lifecycle rows (`idle`, `no_running_terminal`) rather than pretending to manage background sessions. Adversarial tests: empty/newline shell commands are rejected, shell failures surface as exit/status + stderr rows, and rejected terminal commands do not corrupt the current editor buffer. Boundary: synchronous terminal escape hatch only. No PTY, interactive terminal emulator, background terminal sessions, panes/tabs, hidden command discovery, terminal persistence, or project mutation added.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#27