# OrbitHub Progress ## Milestone 0 - Restart in C++/Qt Widgets Status: Completed Delivered: - Fresh C++17/Qt6 Widgets scaffold with CMake - `ProfilesWindow` (`QMainWindow`) with search, profile list, and New/Edit/Delete controls - Double-click in Profiles opens a `SessionWindow` - `SessionWindow` (`QMainWindow`) with `QTabWidget` - Placeholder tab content showing `OrbitHub Native Surface` - `main.cpp` wiring for application startup - Cross-platform build command guide in `docs/BUILDING.md` Git: - Tag: `v0-m0-done` ## Milestone 1 - Storage and CRUD Status: Completed Delivered: - SQLite integration via Qt SQL (`QSQLITE`) - Persistent profile database bootstrap (`profiles` table) - Profiles CRUD (New / Edit / Delete) in `ProfilesWindow` - Search-backed profile listing from storage - Double-click connect opens `SessionWindow` tab with selected profile name Git: - Tag: `v0-m1-done` ## Milestone 2 - Profile Details and Connect Lifecycle Status: Completed Delivered: - SQLite schema migration for profile details (`host`, `port`, `username`, `protocol`, `auth_mode`) - New `ProfileDialog` form for New/Edit profile workflows - Profiles list now shows endpoint metadata and supports search by name or host - Connect now loads complete profile details into `SessionWindow` - Session tab lifecycle status updates (`Connecting`, `Connected`, `Failed`) via non-blocking timer flow Git: - Tag: `v0-m2-done` ## Milestone 3 - Real SSH Backend and Session Controls Status: Completed Delivered: - Backend architecture introduced (`SessionBackend` + protocol-specific implementations) - Worker-thread backend execution for connection lifecycle operations - Real SSH process backend (`ssh`) with connect/disconnect/reconnect - Unsupported protocol backend with explicit not-implemented messaging (RDP/VNC) - Session tab controls: `Connect`, `Disconnect`, `Reconnect`, `Copy Error` - Connect-time credential flow (password prompt / private-key path selection) - Session event log pane with timestamps and user-friendly error mapping - SQLite profile schema migration for `private_key_path` and `known_hosts_policy` Git: - Tag: `v0-m3-done` ## Milestone 4 - Interactive SSH Session UX Status: In Progress Started: - Milestone 4 draft added to spec - Interactive SSH terminal panel wiring started (backend output stream + input send path) - Host-key confirmation request/response signal flow added (`Ask` policy path) - `known_hosts_policy` defaults and profile dialog options updated to include `Ask` Pending: - End-to-end interactive behavior hardening across Linux/macOS/Windows - Terminal UX polish (control keys, resize behavior, output formatting) - Additional diagnostics and integration test coverage for reconnect/auth/host-key scenarios