feat: shared PTY terminal (M12 Tier 3) + readable form controls
release / release (push) Successful in 14s
release / release (push) Successful in 14s
- feat(share): host-consented interactive terminal over the relay. The host shares a real PTY shell (core/pty_session.py); the guest renders it with pyte and sends keystrokes (gui/terminal_widget.py) — vim/top/tab-completion/Ctrl-C work. Runs as the host's user (never root). The host reads along live and can type too, e.g. a sudo password, which stays local and is never sent to the guest. Off by default. Guest also pulls inventory on join (req_full). - fix(gui): style all form controls (QLineEdit/QPlainTextEdit/spin boxes/combo/ terminals) dark-on-light-text — Fusion defaulted them to unreadable light-on-light. - replaces the command/response shell with the full PTY; adds pyte to the gui extra. Verified end-to-end against the deployed relay (guest keystroke ran on host PTY). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -60,8 +60,8 @@ Escalating ladder, built in order:
|
||||
it in RigDoctor. One-way, safest.
|
||||
- [x] Tier 2: live read-only view — `rigdoctor share serve` (stdlib HTTP, token-gated:
|
||||
sensors + health + inventory). Remote = user-chosen tunnel; GUI controls still to add.
|
||||
- [ ] Tier 3: gated interactive terminal (wrap tmate/sshx; read-only default, read-write on
|
||||
explicit consent), with session audit log.
|
||||
- [x] Tier 3: host-consented interactive terminal — a real PTY shell shared over the relay
|
||||
(own `pty`, pyte-rendered guest), off by default; host reads along + can type (sudo).
|
||||
|
||||
> **Out of scope:** stress/repro module (D7); multi-distro support and packaging beyond
|
||||
> Ubuntu/apt + `.deb` (D15) — a thin seam is kept but not built out.
|
||||
|
||||
Reference in New Issue
Block a user