Ivy-Interactive / Ivy-Interactive/Rusty-Framework
[Subsystem] Implement Server-Side PTY Shell Process Manager (Port of Ivy.Hooks.Pty Backend)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Problem Statement
Rusty-Framework includes a frontend terminal.rs widget, but lacks the backend server-side PTY process lifecycle manager (port of Ivy.Hooks.Pty).
Without a server PTY process manager, the frontend terminal widget cannot connect to native OS shell sessions (bash/zsh/cmd/powershell) on the server.
Missing Functionality
- Server-side PTY process lifecycle manager (spawn, resize, write, signal, terminate).
- WebSocket binary/text streaming handler connecting PTY stdout/stdin/stderr to
terminal.rs. - Terminal window size synchronization (cols, rows, pixel dimensions).
- Process isolation and security execution sandboxing settings.
Proposed Architecture & Design
- Integrate
portable-ptyortokio-ptyintorusty-server. - Add PTY session management handlers to the WebSocket routing module.
- Handle terminal resize events (
SIGWINCH/TIOCSWINSZ) received over WebSocket messages. - Provide security configuration options (allowed binaries, working directory restrictions, environment variable filtering).
Acceptance Criteria
- Server spawns native shell processes on Linux, macOS, and Windows.
- Interactive stdin/stdout data streams between PTY process and
terminal.rswidget without latency or framing issues. - Terminal resize messages dynamically adjust PTY dimensions.
- Clean process termination on WebSocket disconnect.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing frontend terminal.rs widget and locating the rusty-server WebSocket routing module. Compare portable-pty and tokio-pty for spawning shells, streaming input and output, resizing, and termination across Linux, macOS, and Windows. Done means the acceptance criteria are met, including security configuration and cleanup on disconnect.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100