docs: record implemented runtime slices
test / workspace (push) Successful in 13m16s

This commit is contained in:
Tom You
2026-07-09 00:22:22 -05:00
parent fb5a02821e
commit ce370c740a
2 changed files with 39 additions and 2 deletions
+33
View File
@@ -0,0 +1,33 @@
# Rabby Implementation Status
Current repo: `https://gitea.thetomyou.com/mistercorea/rabby`
This file records what is now actually wired at runtime versus what is still modeled or UI-only.
## Runtime implemented slices
| Slice | Commit | Runtime behavior | Verification |
| --- | --- | --- | --- |
| Encrypted local wallet vault | `fc17c44` | Saves/loads the demo wallet dashboard through AES-256-GCM envelopes with Argon2id-derived keys; rejects blank/wrong passphrases; avoids plaintext wallet data in the vault file. | `cargo test -p rabby-runtime wallet_vault::tests` |
| Local terminal command bridge | `a215d91` | UI can run a local shell command through a Tauri command backed by `rabby-runtime::local_terminal`; captures stdout/stderr/exit code. | `cargo test -p rabby-runtime local_terminal::tests`; `cargo test -p rabby local_command_tauri_bridge_captures_output` |
| 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` |
## Still not complete
These are still **not** full production parity:
- Real seed/private-key import and key management.
- Real transaction signing and broadcast.
- 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`.
## Next order of work
1. Replace bounded local command execution with an interactive PTY session registry and event stream.
2. Add SSH identity/known-host management and an interactive SSH PTY session registry.
3. Add settings coverage for language/currency/autolock, not only theme/config persistence.
4. Add real wallet import/signing behind a threat-modelled key-management layer.
+6 -2
View File
@@ -8,7 +8,7 @@ This document records the feature/functionality classes Rabby Wallet exposes and
| Feature | RabbyHub/Rabby reference | MVP acceptance in this repo | Current status |
| --- | --- | --- | --- |
| Create/unlock wallet | `Welcome`, `CreatePassword`, `Unlock`, `ForgotPassword` | Password/unlock state model and encrypted local state boundary | Modeled |
| Create/unlock wallet | `Welcome`, `CreatePassword`, `Unlock`, `ForgotPassword` | Password/unlock state model and encrypted local state boundary | RuntimeImplemented for encrypted demo vault |
| Import/create accounts | `CreateMnemonics`, `ImportMnemonics`, `ImportPrivateKey`, `ImportJson`, watch address | Seed/private key/JSON/watch-only account records validate and display | Modeled |
| Hardware/institutional accounts | Ledger, Trezor, Keystone, GridPlus, OneKey, BitBox02, Gnosis Safe, Coinbase, WalletConnect, Cobo Argus | Account source model covers Rabby import surface | Modeled |
| Multi-chain networks | `ChainList`, `CustomRPC`, `CustomTestnet`, offline chain support | Chain config validates id, RPC URL, custom/testnet/offline flags | Modeled |
@@ -20,7 +20,7 @@ This document records the feature/functionality classes Rabby Wallet exposes and
| Signing/security preview | `Approval`, `securityEngine`, `rabby-action`, signing highlighter | Signing request includes message/typed-data/tx preview and risk | Modeled |
| Activity/history | `Activities`, `History`, `TransactionHistory`, `SignedTextHistory` | History entries track account, chain, status, tx/signature identity | Modeled |
| Contacts/whitelist | `contactBook`, `WhitelistInput`, send recipient selection | Contacts validate name/address and whitelist state | Modeled |
| Settings/customization | `AdvanceSettings`, `SwitchLang`, currency, auto-lock, metamask mode | Theme, language, currency, auto-lock, default-wallet mode | UI Prototype |
| Settings/customization | `AdvanceSettings`, `SwitchLang`, currency, auto-lock, metamask mode | Theme, language, currency, auto-lock, default-wallet mode | RuntimeImplemented for theme/config persistence; UI Prototype for full settings |
| Notifications/guides/points | `notification`, `newUserGuide`, `RabbyPoints`, feedback | Dashboard can list notifications and points summary | UI Prototype |
## RabbyHub/Rabby architecture notes
@@ -66,3 +66,7 @@ The current app can open but is still a shell. The MVP work should prioritize:
## Implemented runtime slices
- Encrypted local wallet dashboard vault: `rabby-runtime::wallet_vault::EncryptedWalletVault` writes AES-256-GCM encrypted JSON envelopes using Argon2id-derived keys, rejects blank/wrong passphrases, avoids plaintext wallet fields in storage, and is exposed to Tauri via `save_demo_wallet_vault` / `load_wallet_vault`.
- Local terminal command runtime: `rabby-runtime::local_terminal::LocalTerminal` executes bounded local shell commands, captures stdout/stderr/exit code, rejects blank commands, and is exposed to Tauri via `run_local_command`.
- 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.