Preserve independent project host setups

Co-authored-by: Orca <help@stably.ai>
This commit is contained in:
Jinwoo-H
2026-06-11 12:33:59 -07:00
co-authored by Orca
parent 4e9bc9b6c6
commit 13baeba95d
7 changed files with 166 additions and 27 deletions
@@ -493,12 +493,15 @@ Already partially landed:
compatibility projection and persistence sync
- project-host setup runtime capability advertisement, read fallback, and
remote mutation gating for older runtime servers
- persistence merge that preserves independently persisted project/setup rows
across load, repo updates, and repo reorders while refreshing repo-backed
compatibility rows from repos
Not complete yet:
- SSH clone streamed-progress parity and provisioning flows
- independent project-host setup persistence beyond the repo-backed
compatibility records
- first-class independent project-host setup creation/update/delete APIs beyond
the current repo-backed import/clone compatibility paths
- bulk setup flows and setup for hosts that are not already known to the client
- project settings split into global and host-specific ownership
- host settings/capability UI aligned with project setup
@@ -497,11 +497,14 @@ Already partially landed:
compatibility projection and persistence sync
- project-host setup runtime capability advertisement, read fallback, and
remote mutation gating for older runtime servers
- persistence merge that preserves independently persisted project/setup rows
across load, repo updates, and repo reorders while refreshing repo-backed
compatibility rows from repos
Not complete yet:
- independent project-host setup persistence beyond repo-backed compatibility
records
- first-class independent project-host setup creation/update/delete APIs beyond
the current repo-backed import/clone compatibility paths
- bulk setup flows and setup for hosts that are not already known to the client
- SSH streamed clone progress parity
- full project settings split into global and host-specific ownership
@@ -531,7 +534,7 @@ tests, and version-skew handling.
The largest remaining areas are:
1. independent `ProjectHostSetup` persistence
1. independent `ProjectHostSetup` creation/update/delete APIs
2. project-first creation/setup UI completion
3. project and host settings ownership split
4. cache/request ownership audit
+5 -2
View File
@@ -532,14 +532,17 @@ Already partially landed:
compatibility projection and persistence sync
- project-host setup runtime capability advertisement, read fallback, and
remote mutation gating for older runtime servers
- persistence merge that preserves independently persisted project/setup rows
across load, repo updates, and repo reorders while refreshing repo-backed
compatibility rows from repos
Not complete yet:
- SSH clone streamed-progress parity
- provisioning flows and inline provisioning actions from the composer
- bulk setup flows and setup for hosts that are not already known to the client
- independent project-host setup persistence beyond repo-backed compatibility
records
- first-class independent project-host setup creation/update/delete APIs beyond
the current repo-backed import/clone compatibility paths
- full project settings split into global and host-specific ownership
- host settings/capability UI aligned with project setup
- complete cache/request ownership audit
+5 -2
View File
@@ -415,12 +415,15 @@ Already partially landed:
- repo-backed setup method metadata for imported/cloned project-host setups
- project-host setup runtime capability advertisement, read fallback, and
remote mutation gating for older runtime servers
- persistence merge that preserves independently persisted project/setup rows
across load, repo updates, and repo reorders while refreshing repo-backed
compatibility rows from repos
Still needed:
- finish SSH clone streamed-progress parity and provisioning flows
- independent project-host setup persistence beyond the repo-backed
compatibility records
- first-class independent project-host setup creation/update/delete APIs beyond
the current repo-backed import/clone compatibility paths
- bulk setup flows and setup for newly added hosts
- project settings split into global and host-specific ownership
- host settings/capability UI aligned with project setup
+18 -10
View File
@@ -766,16 +766,20 @@ Landed so far:
advertise `project-host-setup.v1`; new clients fall back to repo-derived
project/setup projection for reads when that capability is missing and block
remote setup/clone mutations before contacting an older server.
- Added a persistence merge for project-host setup state. Repo-backed
compatibility rows are still refreshed from repos, but independently
persisted projects/setups now survive load, repo update, and repo reorder
paths instead of being overwritten by the repo projection.
- Added tests for local repos, SSH repos, same-provider multi-host grouping,
no-identity same-name non-grouping, selector cache behavior, persistence
backfill, repo mutation synchronization, renderer hydration, runtime RPC
routing, project-host setup capability gating, setup method persistence,
local/runtime/SSH clone setup composition, remote clone IPC, and GitHub clone
URL inference. Sidebar row-builder tests now cover project-first multi-host
grouping and same-name repo separation without project identity. Workspace
target tests cover local-only fallback, focused-host setup selection, explicit
project-plus-host resolution, same-name non-merging, and unavailable setup
reasons.
routing, project-host setup capability gating, independent setup preservation,
setup method persistence, local/runtime/SSH clone setup composition, remote
clone IPC, and GitHub clone URL inference. Sidebar row-builder tests now cover
project-first multi-host grouping and same-name repo separation without
project identity. Workspace target tests cover local-only fallback,
focused-host setup selection, explicit project-plus-host resolution, same-name
non-merging, and unavailable setup reasons.
Important limitation:
@@ -791,15 +795,19 @@ Important limitation:
not yet have local-clone parity for progress events. Abort now propagates to
the relay `git.exec` request, and failed/aborted SSH clones clean up only
when Orca can prove the target did not already exist before the clone.
- Project-host setup records are still regenerated from repo compatibility
records. The setup method now persists through that projection, but the final
independent setup table is still future work.
- Repo-backed project-host setup records are still regenerated from repo
compatibility records. Independently persisted setup records are now preserved
across load and repo mutations, but the UI/API still mostly creates setups
through repo-backed import/clone paths. A fully independent setup creation and
mutation table is still future work.
Remaining end-to-end work:
- broaden setup-on-host flows beyond known local, SSH, and active runtime hosts
- finish SSH clone streamed-progress parity, provisioning, and bulk setup-on-host
flows
- add first-class independent project-host setup creation/update/delete APIs
instead of routing most setup changes through repo import/update compatibility
- split settings into explicit client, host, project, and project-host setup
scopes
- validate the default project-first sidebar view in Electron and continue