7.0 KiB
7.0 KiB
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) withQTabWidget- Placeholder tab content showing
OrbitHub Native Surface main.cppwiring 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 (
profilestable) - Profiles CRUD (New / Edit / Delete) in
ProfilesWindow - Search-backed profile listing from storage
- Double-click connect opens
SessionWindowtab 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
ProfileDialogform 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_pathandknown_hosts_policy
Git:
- Tag:
v0-m3-done
Milestone 4 - Interactive SSH Session UX
Status: Completed
Delivered:
- Embedded interactive SSH terminal using
KodoTerm+ vendoredlibvterm - 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-askpasshandling 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, andClear - 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: Completed
Delivered:
- Added
RdpSessionBackendand wired protocol selection soRDPno longer routes to unsupported backend - Pivoted RDP design to embedded-only integration (no external RDP process launches)
- Implemented embedded FreeRDP client thread with connect/disconnect lifecycle and event-loop handling
- Added in-window
RdpDisplayWidgetrendering surface with frame updates from FreeRDP GDI - Wired direct keyboard/mouse input from the embedded RDP surface to the backend
- Added RDP connect-time password prompt flow and settings wiring (host/port/user/password, desktop size)
- Added explicit profile
Domainsupport for RDP auth (withDOMAIN\usernamefallback parsing) - Updated session tab/context-menu behavior so terminal-only actions are hidden on RDP tabs
- Implemented dynamic in-session RDP resolution renegotiation from viewport resize events
- Enabled minimal FreeRDP client-channel build (
drdynvc+disp) and channel loading for runtime resize support - Added RDP profile-level security mode and performance profile options, wired into FreeRDP connection settings
- Hardened RDP lifecycle handling for disconnect/reconnect/abort flows to avoid false failure states on user-initiated stops
- Expanded RDP error/disconnect diagnostics with richer FreeRDP code mapping and raw disconnect detail events
- Pulled FreeRDP source for integration planning and API review
Git:
- Tag:
v0-m5-done
Milestone 6 - VNC Fully Working
Status: Deferred (temporarily postponed)
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: Completed
Delivered:
- Added profile
tagsfield to storage + schema migration and profile editor UX - Added profile
folder_pathfield + nested folder/subfolder profile view mode - Added profile tree context actions (
New Folder,New Connection) and drag-to-folder profile moves with persistence - Added
Help -> About OrbitHubdialog with third-party library inventory and MIT/Apache-2.0 license links - Extended profile search to include tags/folder path and added profile sort controls (
Name,Protocol,Host) - Persisted profile list UX preferences (
search text,view mode, protocol/tag filters,sort order) across app restarts - Added protocol-aware profile validation/normalization for SSH/RDP/VNC (repository + dialog)
- Improved profile form protocol UX hints and SSH private-key path validation
- Added session events filtering and tab-context actions (
Show/Hide Events,Copy Events,Clear Events) - Added session diagnostics QoL: severity quick-filter (
All/Warnings/Errors) andExport Eventsaction - Persisted session UI defaults (
terminal theme,events panel visibility) for new tabs/windows - Added profile quick filters (
Protocol,Tag) with persistence to speed profile browsing
Validation:
- Local build verification passed (
cmake --build build) - No automated tests are currently configured in CTest
Git:
- Tag: Pending user approval (
v0-m8-done)
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