From e2a8b874d7039da3e172d9aa02074b28ce1c99f1 Mon Sep 17 00:00:00 2001 From: Keith Smith Date: Sun, 1 Mar 2026 09:37:43 -0700 Subject: [PATCH] Document Milestone 3 deliverables and SSH prerequisites --- docs/BUILDING.md | 7 +++++-- docs/OrbitHub_v0_Spec_CPP_QtWidgets.md | 13 +++++++++++++ docs/PROGRESS.md | 17 +++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 1475895..c5862d9 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -8,7 +8,8 @@ Run all commands from the repository root unless noted. sudo apt update sudo apt install -y \ build-essential cmake ninja-build git pkg-config \ - qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools + qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools \ + openssh-client cmake -S . -B build -G Ninja cmake --build build @@ -20,7 +21,7 @@ cmake --build build ```bash xcode-select --install brew update -brew install cmake ninja pkg-config qt@6 +brew install cmake ninja pkg-config qt@6 openssh cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6)" cmake --build build @@ -33,6 +34,7 @@ cmake --build build winget install -e --id Git.Git winget install -e --id Kitware.CMake winget install -e --id Ninja-build.Ninja +Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 winget install -e --id Microsoft.VisualStudio.2022.BuildTools ` --override "--quiet --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools" ``` @@ -53,4 +55,5 @@ cmake --build build ## Notes - OrbitHub currently requires Qt6 Widgets and CMake 3.21+. +- Milestone 3 SSH sessions require an `ssh` client available on `PATH`. - If Qt is installed in a custom location, pass `-DCMAKE_PREFIX_PATH=/path/to/Qt/6.x.x/` to CMake. diff --git a/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md b/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md index 8ba9f30..f27f305 100644 --- a/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md +++ b/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md @@ -64,3 +64,16 @@ OrbitHub uses a two-window model: - 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 diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 79955db..bfe4944 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -43,3 +43,20 @@ Delivered: 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`