# OrbitHub v0 Specification (Pure C++ / Qt6 Widgets) ## Overview OrbitHub is a cross-platform native desktop application for managing and launching remote sessions. Platforms: - Windows 11 - Linux (Mint/Ubuntu-family) - macOS Implementation: - 100% C++ - Qt 6 Widgets (no Qt Quick) - CMake build system - MIT License This replaces the earlier Python-based architecture. --- ## UX Model OrbitHub uses a two-window model: 1) Profiles Window (single instance) - List of saved profiles - Search box - New / Edit / Delete - Double-click connects 2) Session Window(s) - QTabWidget - One tab per session - Close tab destroys session - Placeholder view widget displays: "OrbitHub Native Surface" --- ## Milestone 0 - Fresh C++/Qt repo scaffold - App builds - Profiles window launches - Session window opens with placeholder tab - Tag: v0-m0-done --- ## Milestone 1 - SQLite integration - Profiles CRUD - Connect loads profile name into tab - Tag: v0-m1-done --- ## Milestone 2 - Extend profiles schema (`host`, `port`, `username`, `protocol`, `auth_mode`) - Replace prompt-based create/edit with a structured profile dialog form - Connect loads full profile details into session tab - Session lifecycle states in UI (`Connecting`, `Connected`, `Failed`) with non-blocking updates - Tag: v0-m2-done --- ## Milestone 3 - Real SSH backend using native `ssh` process (connect, disconnect, reconnect) - Protocol backend abstraction with worker-thread execution - RDP/VNC explicitly marked as not implemented in session UX - Connect-time credential prompts (password/private key path) with no secret storage in DB - Session tab controls: `Connect`, `Disconnect`, `Reconnect`, `Copy Error` - Per-session timestamped event log and user-friendly error mapping - Profile schema extended with `private_key_path` and `known_hosts_policy` - Tag: v0-m3-done --- ## Milestone 4 (Draft) - Make SSH sessions actually usable as interactive sessions inside OrbitHub - Replace placeholder surface with interactive SSH terminal panel (stream output + send input) - Add SSH host-key trust prompt flow for `Ask` policy - Improve auth flow UX for password / private key at connect time - Preserve responsive UI under active session output - Add terminal/session utilities (`Clear Terminal`, improved output visibility) - Keep session controls stable (`Connect`, `Disconnect`, `Reconnect`, `Copy Error`) - Add validation and diagnostics coverage for host-key, auth, and reconnect behavior - Planned Tag: v0-m4-done (after completion approval)