# 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: Completed Delivered: - Embedded interactive SSH terminal using `KodoTerm` + vendored `libvterm` - Native in-terminal typing for SSH sessions (no separate input box) - ANSI/color rendering with selectable terminal themes (`Dark`, `Light`, `Solarized Dark`) - Cross-platform SSH auth path improvements (`ssh-askpass` handling and host-key policy wiring) - Session UX simplification: auto-connect on tab open, disconnect on tab close - Tab-state indicators via tab color and state suffix (`Connecting`, `Connected`, `Disconnected`, `Failed`) - Right-click tab menu for `Disconnect`, `Reconnect`, `Theme`, and `Clear` - Collapsible events panel retained as primary diagnostics surface; inline detail/status banners removed - Terminal behavior polish: better fixed-width font selection, cursor visibility, backspace handling, and terminal-size negotiation stability Git: - Tag: `v0-m4-done` ## Milestone 5 - RDP Fully Working Status: Planned Planned Scope: - Replace current unsupported RDP path with complete RDP implementation - Deliver usable in-app RDP session behavior aligned to SSH UX - Implement RDP connect/disconnect/reconnect lifecycle handling - Extend profile/session connect options needed by RDP - Standardize event log and error mapping behavior with SSH ## Milestone 6 - VNC Fully Working Status: Planned Planned Scope: - Replace current unsupported VNC path with complete VNC implementation - Deliver usable in-app VNC session behavior aligned to SSH/RDP UX - Implement VNC connect/disconnect/reconnect lifecycle handling - Extend profile/session connect options needed by VNC - Standardize event log and error mapping behavior with SSH/RDP ## Milestone 7 - Cross-Platform Protocol Hardening Status: Planned Planned Scope: - Validate SSH/RDP/VNC workflows on Windows, Linux, and macOS - Fix platform-specific runtime/process/auth issues - Add repeatable protocol validation checklist/scripts ## Milestone 8 - Profile and Session UX Completion Status: Planned Planned Scope: - Complete protocol-aware profile validation and UX polish - Add/persist session UI preferences and default behaviors - Improve events/diagnostics visibility for long-running session usage ## Milestone 9 - Packaging and Distribution Status: Planned Planned Scope: - Build distributable artifacts for Windows/Linux/macOS - Document runtime dependencies and install prerequisites - Add reproducible release packaging steps/scripts ## Milestone 10 - v1.0 Stabilization Status: Planned Planned Scope: - Run final regression and acceptance testing across all protocols - Resolve release-blocking defects - Finalize docs and publish v1.0 release notes/checklist