# 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`