Skip to content

feat(terminal): add persistent PTY terminal store and tools (DSH 2.9) - #214

Merged
Patel230 merged 2 commits into
mainfrom
feat/dsh-harness-rfc-2.9-persistent-pty-terminal
Aug 20, 2026
Merged

feat(terminal): add persistent PTY terminal store and tools (DSH 2.9)#214
Patel230 merged 2 commits into
mainfrom
feat/dsh-harness-rfc-2.9-persistent-pty-terminal

Conversation

@Patel230

Copy link
Copy Markdown
Contributor

Summary

Port of DSH terminal/pty, terminal/terminal-bash, and terminal/tool-terminal into Hawk.

Key Changes

  • terminal: Implemented TerminalStore managing persistent interactive PTY sessions with branded IDs (terminal-<N>).
  • terminal: Enforced exact session ownership and isolation (cross-session access denied).
  • terminal: Implemented zero-CGO PTY backend on Unix/Darwin/Linux via github.com/creack/pty with bounded buffering (64 KiB read cap / 512 KiB buffer cap).
  • terminal: Integrated sandbox policies (SecurityWorkspace, SecurityStrict) and process-tree disposal.
  • tools: Added TerminalCreate, TerminalSend, TerminalRead, TerminalList, TerminalResize, and TerminalKill tools to essentialTools.
  • tests: Full test coverage for lifecycle, session authorization, bounded reads, resize, and session teardown.

Gated by gofmt, go vet, go test -race, make lint, and layer boundary guards.

Port of DSH terminal/pty, terminal/terminal-bash, and terminal/tool-terminal into Hawk.

- terminal: Implemented TerminalStore managing persistent interactive PTY sessions with branded IDs (terminal-<N>).
- terminal: Enforced exact session ownership and isolation (cross-session access denied).
- terminal: Implemented zero-CGO PTY backend on Unix/Darwin/Linux via creack/pty with bounded buffering (64 KiB read cap / 512 KiB buffer cap).
- terminal: Integrated sandbox policies (SecurityWorkspace, SecurityStrict) and process-tree disposal.
- tools: Added TerminalCreate, TerminalSend, TerminalRead, TerminalList, TerminalResize, and TerminalKill tools to essentialTools.
- tests: Full test coverage for lifecycle, session authorization, bounded reads, resize, and session teardown.
@Patel230
Patel230 merged commit 8f0e192 into main Aug 20, 2026
26 checks passed
@Patel230
Patel230 deleted the feat/dsh-harness-rfc-2.9-persistent-pty-terminal branch August 20, 2026 05:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant