diff --git a/docs/implementation-status.md b/docs/implementation-status.md index a3ca330..4254ee7 100644 --- a/docs/implementation-status.md +++ b/docs/implementation-status.md @@ -13,6 +13,10 @@ This file records what is now actually wired at runtime versus what is still mod | Customization persistence | `6e08e0e` | UI settings can persist app config/theme through the Rust `JsonFileConfigStore`. | `cargo test -p rabby save_and_load_app_config_round_trips_custom_theme` | | SSH command bridge | `fb5a028` | UI can submit a remote command through system `ssh` using BatchMode and connect timeout. Unit tests verify argument construction/validation without requiring a real server. | `cargo test -p rabby-runtime ssh_runtime::tests`; `cargo test -p rabby ssh_command_bridge_rejects_blank_host` | +| Interactive local PTY sessions | `f37ac6c` | Opens real pseudo-terminal sessions through `portable-pty`, supports write/read-until/resize/kill, and exposes a Tauri-managed session registry. | `cargo test -p rabby-runtime terminal_session::tests` | +| Safe wallet import boundary | `02ae7a0` | Validates seed phrase/private key/JSON keystore/watch-only import requests and redacts sensitive material in debug output. This is validation only, not key derivation/signing. | `cargo test -p rabby-core wallet_import::tests` | +| Interactive SSH PTY entrypoint | `2abb2b9` | Builds interactive `ssh -tt` PTY sessions through the terminal registry and exposes `terminal_session_start_ssh` for Tauri. Unit tests validate argument construction without requiring a real remote host. | `cargo test -p rabby-runtime terminal_session::tests` | + ## Still not complete These are still **not** full production parity: @@ -22,8 +26,8 @@ These are still **not** full production parity: - Real browser extension `window.ethereum` provider injection. - Real portfolio API sync for balances/NFTs/DeFi positions. - Real swap/bridge API execution. -- Interactive PTY terminal streaming with persistent sessions; current local terminal slice runs bounded commands. -- Interactive SSH shell with PTY, key selection, known-host management, SFTP, and port forwarding; current SSH slice runs bounded remote commands through system `ssh`. +- Full terminal renderer/event streaming into the UI; runtime PTY session registry exists, but the UI still needs continuous stream rendering. +- SSH key selection, known-host management, SFTP, and port forwarding; interactive SSH PTY entrypoint exists, but those advanced SSH workflows are not complete. ## Next order of work diff --git a/docs/rabbyhub-mvp-feature-inventory.md b/docs/rabbyhub-mvp-feature-inventory.md index ef3fddc..cdb5b65 100644 --- a/docs/rabbyhub-mvp-feature-inventory.md +++ b/docs/rabbyhub-mvp-feature-inventory.md @@ -70,3 +70,7 @@ The current app can open but is still a shell. The MVP work should prioritize: - Settings/customization persistence: `load_app_config` / `save_app_config` round-trip `AppConfig` through `JsonFileConfigStore`, with UI controls for theme persistence. - SSH command runtime: `rabby-runtime::ssh_runtime::SshClient` builds validated BatchMode system-ssh commands and is exposed to Tauri via `run_ssh_command`. This is a bounded remote-command slice, not yet a full interactive SSH terminal. + +- Interactive PTY sessions: real local pseudo-terminal session registry supports write/read/resize/kill and is exposed through Tauri commands. +- Interactive SSH PTY entrypoint: Tauri can start an `ssh -tt` session through the PTY registry; key/known-host/SFTP/forwarding workflows still need dedicated slices. +- Safe wallet import boundary: seed/private-key/JSON/watch-only requests validate and redact sensitive debug output; real key derivation and signing remain separate slices.