Repository navigation
Terminal PTY Selection
Provenance — Migrated 2026-10-06 from
docs/implementation/terminal-pty-selection.md@ zuohaisu/viva@871a00a · 迁移自主仓库该文件;正文相对链接已改为 Wiki 链接,原始状态/日期/作者行保留,原文以 Git 历史为准。
Status: Delivered with V05 (issue #14) · 2026-09-28 · Lane E
Issue #14's 2026-09-28 supplement requires a recorded reuse check against the Orca fixed-source audit before choosing a PTY approach. This document is that record.
-
Orca TerminalHost / PTY slice (
docs/research/orca-reuse-audit-2026-09-28.md): the audit found no plain-Nodeorcadbuild entry without Electron, and the TerminalHost slice is not published as an independent library — extracting it means carrying Orca's runner/cache/WSL coupling. Reuse would also import Orca's detach/disconnect-then-keep-running semantics, which Viva must not keep (owned terminals stop with the Viva host). - portable-pty 0.9.0 (wezterm's pty layer, maintained, MIT): owns the pty/session discipline (setsid + controlling terminal on Unix), giving each session a real process group without hand-rolled tty ioctls.
- vt100 0.16.2 (MIT): parses raw output into a bounded grid + ring scrollback; byte-exact ANSI fidelity is preserved separately in the disk log, so nothing fakes the transcript.
Use portable-pty (session/process-group discipline) + vt100 (grid
emulation). Viva's own terminal::session owns lifecycle: SIGTERM →
timeout → SIGKILL to the process group with reap confirmation, bounded
memory, and byte-level redacted disk logs. No Orca code, binary, CLI, or
private metadata is used; no Orca.app dependency exists.
| Crate | Version | License |
|---|---|---|
| portable-pty | 0.9.0 | MIT |
| vt100 | 0.16.2 | MIT |
| ratatui | 0.30.2 | MIT |
| crossterm | 0.29.0 | MIT |
| libc | 0.2.189 | MIT OR Apache-2.0 |
- Intel Mac acceptance stays with V12; this lane validated on macOS arm64 and Linux CI runs the same suite.
- Real Pi composition (V09) and 16-Agent soak (V12) are separate gates.
Viva Wiki
Charter & Product
Core-Thesis Vision Customer-Zero User-Stories Product-Model Workflows First-Usable-Version Workbench-Navigation Phase-1-Scope
Architecture
Conceptual-Architecture Domain-Model Temporal-Model Resident-Container Transition-Record
Decisions
Decisions ADR-0001 · ADR-0002 · ADR-0003 · ADR-0004 · ADR-0005 · ADR-0006 ADR-0007 · ADR-0008 · ADR-0009 · ADR-0010 · ADR-0011 · ADR-0012 · ADR-0013
Development
Rust-Rollout-Plan G0-Interface-Contracts Terminal-PTY-Selection V15-Workbench-Deepening
Research
Research-Hermes Research-Hermes-Holographic-Memory Research-Agent-Memory-Architecture Research-Orca Research-Orca-Reuse-Audit Research-Herdr-Runtime-Parity Research-VS-Code-Workspace Research-Self-Model-Relationship
Validation
V12-G1-Baselines V12-Final-Acceptance V13-Python-Retirement F01-F04-Acceptance CLI-Update-Validation
Releases & History
Releases Goal-Drift-Log Technology-Selection-Archive Start-Prompt-Track
主仓库:zuohaisu/viva · 工作规则:AGENTS.md