Skip to content

feat(tty): add composable virtual surfaces and PTY sessions - #631

Merged
wolfy-j merged 3 commits into
mainfrom
feat/tty-surface-demo
Sep 4, 2026
Merged

feat(tty): add composable virtual surfaces and PTY sessions#631
wolfy-j merged 3 commits into
mainfrom
feat/tty-surface-demo

Conversation

@wolfy-j

@wolfy-j wolfy-j commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add canonical process-scoped TTY port and retained surface contracts
  • add virtual viewport brokering with capability-bound grants and exclusive presentation leases
  • expose compact Lua canvas and viewport APIs plus exec.Process:attach_terminal()
  • model child allocation explicitly as typed PTYOptions / Lua pty = {...}
  • connect real PTY lifecycle, resizing, input, cursor state, mouse, and paste for native and Docker executors
  • separate focus from visibility so shells can choose live, frozen, minimized, or background presentation policy
  • include one small two-process integration proof under tests/tty-surface-demo

Runtime properties

  • zero idle polling and coalesced surface updates
  • bounded canvas allocation and terminal scrollback
  • exactly-once surface lease closure with closing-state exclusion
  • graceful PTY shutdown followed by bounded forced termination
  • UI/window policy remains outside the runtime core

Validation

  • make lint — 0 issues
  • go test ./...
  • targeted go test -race across terminal API, Lua TTY/proxy modules, native exec, terminal services, and system TTY
  • integration-proof lint — 2 entries, no issues
  • git diff --check

@wolfy-j
wolfy-j force-pushed the feat/tty-surface-demo branch 2 times, most recently from f50327d to 64b5eaf Compare September 4, 2026 03:35
@wolfy-j wolfy-j changed the title feat(tty): add composable virtual surfaces and terminal proxy feat(tty): add composable virtual surfaces and PTY sessions Sep 4, 2026
@wolfy-j
wolfy-j force-pushed the feat/tty-surface-demo branch from 64b5eaf to 1ac5797 Compare September 4, 2026 03:55
@wolfy-j
wolfy-j force-pushed the feat/tty-surface-demo branch 3 times, most recently from 8d22bfe to b945694 Compare September 4, 2026 14:49
@wolfy-j
wolfy-j force-pushed the feat/tty-surface-demo branch from b945694 to f8c1222 Compare September 4, 2026 15:44
@wolfy-j
wolfy-j merged commit bee9c50 into main Sep 4, 2026
5 checks passed
@wolfy-j
wolfy-j deleted the feat/tty-surface-demo branch September 4, 2026 19:23
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.

2 participants