153 lines
4.3 KiB
Markdown
153 lines
4.3 KiB
Markdown
# 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
|
|
|
|
- Interactive embedded SSH terminal (`KodoTerm` + `libvterm`)
|
|
- SSH host-key trust prompt flow for `Ask` policy
|
|
- Improved SSH auth flow for password / private key
|
|
- Terminal utilities and UX polish (theme, clear, resize/input behavior)
|
|
- Session lifecycle UX cleanup (auto-connect, disconnect on close, tab state indicators)
|
|
- Tag: v0-m4-done
|
|
|
|
---
|
|
|
|
## Milestone 5 - RDP Fully Working
|
|
|
|
- Implement complete RDP protocol support (replace not-implemented RDP path)
|
|
- Deliver a usable in-app RDP session experience consistent with SSH tab UX
|
|
- Support RDP connect/disconnect/reconnect lifecycle from OrbitHub
|
|
- Add required RDP-specific connect options in profile/session flows
|
|
- Normalize event/error reporting with existing SSH behavior
|
|
- Planned Tag: v0-m5-done
|
|
|
|
---
|
|
|
|
## Milestone 6 - VNC Fully Working
|
|
|
|
- Implement complete VNC protocol support (replace not-implemented VNC path)
|
|
- Deliver a usable in-app VNC session experience consistent with SSH/RDP tab UX
|
|
- Support VNC connect/disconnect/reconnect lifecycle from OrbitHub
|
|
- Add required VNC-specific connect options in profile/session flows
|
|
- Normalize event/error reporting with SSH/RDP behavior
|
|
- Planned Tag: v0-m6-done
|
|
|
|
---
|
|
|
|
## Milestone 7 - Cross-Platform Protocol Hardening
|
|
|
|
- Validate SSH/RDP/VNC behavior on Windows, Linux, and macOS
|
|
- Resolve platform-specific path/process/auth differences
|
|
- Improve diagnostics and failure messaging for common protocol issues
|
|
- Add protocol regression checklist and repeatable verification scripts
|
|
- Planned Tag: v0-m7-done
|
|
|
|
---
|
|
|
|
## Milestone 8 - Profile and Session UX Completion
|
|
|
|
- Complete profile fields/validation for all protocols
|
|
- Add quality-of-life controls for active sessions (tab context actions, defaults, persistence)
|
|
- Persist per-user UI/session preferences (theme, panel visibility, terminal defaults)
|
|
- Improve session history/event visibility and filtering
|
|
- Planned Tag: v0-m8-done
|
|
|
|
---
|
|
|
|
## Milestone 9 - Packaging and Distribution
|
|
|
|
- Produce distributable artifacts for Windows, Linux, and macOS
|
|
- Document dependency/runtime requirements per platform
|
|
- Add release build scripts for reproducible packaging
|
|
- Validate clean install + first-run flow on each platform
|
|
- Planned Tag: v0-m9-done
|
|
|
|
---
|
|
|
|
## Milestone 10 - v1.0 Stabilization
|
|
|
|
- End-to-end QA pass across core workflows (profile CRUD + SSH/RDP/VNC session lifecycle)
|
|
- Fix blocker/critical defects from validation
|
|
- Finalize docs (`BUILDING`, usage notes, known limitations)
|
|
- Prepare v1.0 release notes and final acceptance checklist
|
|
- Planned Tag: v1.0.0
|