From da11b96dabece53630bb86e6c1aa24565eb674f7 Mon Sep 17 00:00:00 2001 From: Keith Smith Date: Sun, 1 Mar 2026 08:51:37 -0700 Subject: [PATCH] Add OrbitHub C++ Qt Widgets spec and Codex prompts --- LICENSE | 21 +++++++ ...bitHub_Codex_Build_Prompt_CPP_QtWidgets.md | 36 ++++++++++++ ...bitHub_Master_Codex_Block_CPP_QtWidgets.md | 10 ++++ docs/OrbitHub_v0_Spec_CPP_QtWidgets.md | 56 +++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 LICENSE create mode 100644 docs/OrbitHub_Codex_Build_Prompt_CPP_QtWidgets.md create mode 100644 docs/OrbitHub_Master_Codex_Block_CPP_QtWidgets.md create mode 100644 docs/OrbitHub_v0_Spec_CPP_QtWidgets.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6daab98 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Keith Smith + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/OrbitHub_Codex_Build_Prompt_CPP_QtWidgets.md b/docs/OrbitHub_Codex_Build_Prompt_CPP_QtWidgets.md new file mode 100644 index 0000000..a77bfba --- /dev/null +++ b/docs/OrbitHub_Codex_Build_Prompt_CPP_QtWidgets.md @@ -0,0 +1,36 @@ +# OrbitHub Codex Build Prompt (Pure C++ / Qt6 Widgets) + +You are Codex. You will implement OrbitHub entirely in C++ using Qt6 Widgets. + +The previous Python/Shiboken implementation is abandoned. + +## Rules + +- Use modern CMake +- Use Qt6 Widgets only +- Use C++17 or newer +- Never block the GUI thread +- Use Git for checkpointing +- Maintain docs/PROGRESS.md + +## Required Git Workflow + +Create milestone branches: +- milestone-0-restart-cpp +- milestone-1-storage + +Make small logical commits. + +Tag milestone completions: +- v0-m0-done +- v0-m1-done + +## Milestone 0 Deliverable + +Implement: +- ProfilesWindow (QMainWindow) +- SessionWindow (QMainWindow) +- QTabWidget hosting placeholder QWidget +- main.cpp wiring + +Stop after Milestone 0 is complete and tagged. diff --git a/docs/OrbitHub_Master_Codex_Block_CPP_QtWidgets.md b/docs/OrbitHub_Master_Codex_Block_CPP_QtWidgets.md new file mode 100644 index 0000000..98aa3de --- /dev/null +++ b/docs/OrbitHub_Master_Codex_Block_CPP_QtWidgets.md @@ -0,0 +1,10 @@ +You are Codex and you will do ALL implementation work for OrbitHub. + +1) Read docs/OrbitHub_v0_Spec_CPP_QtWidgets.md +2) Read docs/OrbitHub_Codex_Build_Prompt_CPP_QtWidgets.md + +Follow the Build Prompt strictly. +Use Git branches, commits, and tags. +Update docs/PROGRESS.md. + +Stop after Milestone 0 and tag v0-m0-done. diff --git a/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md b/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md new file mode 100644 index 0000000..9bd2b0a --- /dev/null +++ b/docs/OrbitHub_v0_Spec_CPP_QtWidgets.md @@ -0,0 +1,56 @@ +# 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