Repository navigation
feat(control-plane): add runtime operations and shared workspaces - #265
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ace1487c2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Add persisted identity and project roles, enrolled runtime operations and shared conversation, project and workspace surfaces. Package version-bound server, documentation and VS Code artifacts with verified publication.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dfa4cd0b6f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Quiesce connector watches before changing Desktop sharing and retain explicit recovery fences when runtime or protected persistence outcomes are uncertain. Expose recovery in settings and Connections, and apply shared appearance to Linux credential dialogs. Bind explicit worker account storage across atomic refresh, preserve provider transport without generic model network tools, and release owned offline and vault locks at logical completion even with inherited descriptors or errors. Use one protected publisher revision for image contracts and publication. Validation: required Rust completion and change-selected pre-PR gates pass; native bridge 390 tests, sharing/watcher regressions, Linux GTK appearance, settings browser checks, and deterministic credential ownership cases pass.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e70be74ad8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review the current head 5cfc0b4. The SDK checkpoint now has canonical regeneration, Go 1.25 dependency tidy and a successful official SDK gate; the release-manifest fixture explicitly applies production notice permissions under a private umask. All four prior inline conversations were resolved. Please also assess the changes since the last automated review, including inventory revision/liveness handling and the prior fixes. Current validation and the still-pending operator-owned native Mac acceptance are recorded in the PR description. |
|
Additional validation on 5cfc0b4: |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Please review current head |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Validation receipt for
The locked Mac's actual live-model and rendered UI acceptance remains a separate pending operator check; preserve Risk auto / Minimal / offline and saved private sharing. Cloud shell GitHub authentication now returns 401, while the connected GitHub app remains usable for PR and CI operations; refreshed shell authentication has been requested for later annotated-tag/release operations. Merge, release tags and publication have not occurred. |
|
@codex review Please review current head |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Validation receipt for
The locked Mac's actual live-model and rendered UI result remains pending separately; preserve managed Risk auto / Minimal / offline and saved private sharing. Cloud does not inherit that session or model credentials. Merge, preview tag and publication remain pending. |
|
Operator handoff for the locked-Mac acceptance, using the checkpoint's explicit coordination option: Owner: the operator of the existing locked Mac session (PR author). Tested source to use:
This operator-owned live-model/UI check remains pending and is explicitly coordinated here. Hosted macOS acceptance uses fixtures and is separate evidence. The authorized merge/preview publication will proceed only after current-head required PR/review/full gates pass; release reporting will retain this pending operator check rather than claim that it ran. |
|
@codex review Please review current head |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Please review final head |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Checkpoint completion and merge receipt:
The operator's Mac live-model/rendered UI check remains pending and explicitly coordinated in 6043952713, now against the equivalent merged runtime source. Preserve Risk auto / Minimal / offline and saved private sharing. Hosted fixtures and the CLI live-model result do not claim that Mac account check ran; the ADHOC preview intentionally refuses Managed Local. This preview publishes no stable SDK registry packages or Marketplace extension. |
|
Release follow-up: the first tag |
Operators can now manage explicitly enrolled Desktop and CLI runtimes through the Colossus Control Plane, deploy it on Kubernetes, and operate durable threads across projects and hosts. Released history and queued work remain recoverable while each runtime enforces its local execution authority.
The web app adds Home, Fleet and agent tables, Desktop-style workspace/thread navigation and New Work, project hierarchy and membership, analytics, administration, configurable classification markings, and shareable resource URLs. It shares shadcn components, conversation rendering, composer controls and design tokens with Desktop and VS Code. A dedicated Diesel/PostgreSQL schema owns users, optional named OIDC or local Argon2id sign-in, project roles, placement, receipts, cursors and fenced replica leases. Runtime journals, provider credentials, grants, tools and policy remain local. Policy views report provenance and observation freshness; repeated inventory preserves static revisions while retaining real changes and heartbeat liveness.
Desktop gains global Control Plane profiles, enrolled-workspace status in Connections, shared compact settings, Providers/Models/Routing surfaces and workspace-scoped fork drafts. Sharing updates quiesce synchronization and reconcile persistence failures. Explicit debug-only credential custody supports reviewed, digest-bound offline development migrations while retaining original identities and entries. Authority/workspace overlap checks use canonical path forms on Windows, including rejection before authority creation.
Release automation adds Linux amd64/arm64 server/web/deployment and offline Docker bundles, six platform-specific VSIX packages, and immutable tested-image publication. A separate hardened documentation container serves canonical pages and local search at
/docs/, with Kubernetes routing and source-bound candidate/publication workflows. Publishers use one checked protected-main revision, retain independent candidate evidence and reject conflicting version tags. Implements #261 and incorporates the Desktop workflow schedules from #262.Completed continuation head:
8b29088bdfac44ef1cf569296894dca911db48ed. The SDK checkpoint retains Go minimum 1.25.0, uses gRPC 1.83.2 and x/net 0.58.0, and requires Python cryptography >=50,<51. Go tidy and canonical generation refreshed the dependency checksums and input digest without generated-binding drift. The release-manifest fixture explicitly restores public notice permissions after writing files, matching staging under a private umask; production verification is unchanged.Windows credential acceptance exposed an authority/workspace path-form mismatch and fixtures that read or modified a live redb file despite Windows mandatory locks. Authority checks now compare canonical locations on both sides, including the not-yet-created authority directory. Recovery tests capture a genuinely committed database after an abrupt writer exit, and verify that metadata/apply leave encrypted source bytes and original keys unchanged. The source-observation test requires Windows to reject the hostile write while retaining Unix same-inode digest detection; writer exclusion remains asserted on both platforms.
Windows atomic private-file replacement now renames the retained source handle relative to the retained private parent using native
NtSetInformationFile(FileRenameInformationEx)and POSIX replacement semantics. Existing readers continue to read the displaced original, new opens identify the staged object, and ACL, no-reparse, namespace and post-operation identity checks remain enforced. The native regression covers the initial save to an absent destination and retains both writers and readers through replacement. The Win32 wrapper rejected the relative rename arguments with error 87; the native API resolves the leaf against the retained private parent directly. This repairs the confined home and Codex credential-refresh failures found by Windows runtime acceptance.The composer’s Model settings action opens the dedicated workspace Models page and preserves the unsent draft. Browser contracts follow the shared conversation component’s role/body markup and separate Models page. Fork-menu screenshots capture the visible viewport without auto-scrolling the popup; menu visibility, keyboard actions, fork layout and theme checks remain. Settings geometry permits only floating-point noise in icon width while retaining exact equality for CSS styles.
macOS native proxy connections now use
localhostwith authenticated listeners on both127.0.0.1and::1at the same private port. Both addresses are reserved before exposing the URL, and shutdown releases both. This avoids IPv4-mapped IPv6 connections rejected by Seatbelt while retaining the existing one-port network grant. The proxy uses the same authentication, exact-origin allowlist and credential stripping on each listener. Native acceptance exercises default, forced IPv4 and forced IPv6 clients while still requiring raw egress denial.Windows Desktop acceptance now has a bounded 75-minute cold-build allowance. Run
37657200330recorded zero compiler-cache hits and hit the former 65-minute limit after 14 of 17 approval cases had progressed, without a test assertion failure. Every preceding Windows Desktop stage and all other platform/security jobs passed. The allowance matches the other Desktop jobs, and all tests and the aggregate gate remain required.Validation evidence:
e05323d40846e298f37979d0881346fd6c34930d84d2d85ddfc7e69acdd5e1ef, with no generated-binding drift. Hosted SDK validation on6a92c315also passed real-worker, Electron, sidebar and VSIX packaging acceptance. Runtime/UI/SDK source is unchanged by the CI-budget and matching contract corrections.37655888596and fresh review6042799832passed on6a92c315; all four previous review threads remain resolved. PR validation37666666511and fresh review6044205216also passed on8b29088b; full run37668092118then exposed the stale 65-minute expectation in the CI contract. The contract now enforces 75 minutes; all 21 CI contract tests, focused Clippy, formatting and workflow validation pass. That failed run completed cancellation before the correction was pushed. Require current-head PR validation, fresh review and successful full acceptance on2f75df8cbefore merge.37657200330on6a92c315passed complete Linux Rust/AppArmor; Linux/macOS/Windows native vaults; macOS native sandbox, Desktop and bundle; Windows runtime/sandbox; Linux packaging/native credential entry; PostgreSQL; Chroma; fuzzing; supply-chain; and OCI/OPA. Only Windows Desktop was cancelled by its 65-minute job timeout, leaving the aggregate failed/cancelled. This is not a successful full run. Cancellation/completion was verified before pushing the timeout repair.gpt-5.6-solturns in one retained session, four canonical messages, 27 identical replay frames, Usage events and 25 liveness samples without changing enrollment, grants or policy.cargo xtask check workflows, actionlint and commit hooks passed for the 75-minute allowance and its matching CI contract. No completion/security check or compiler-cache permission was relaxed.Earlier failed/cancelled runs remain diagnostic evidence, not aggregate passes. Local full Rust/PR attempts exhausted the managed 32 GiB disk or failed private-home ancestry because
/is owned by UID 65534; the affected fixture passed unchanged in a pinned non-root container. Production ancestry checks remain intact, and hosted complete Rust/AppArmor passed on the identical runtime source.Operator-owned native Desktop live-model/rendered UI acceptance remains pending on the locked Mac and is explicitly coordinated in 6043952713, using the original checkpoint's coordination option. The operator handoff names the reviewed runtime source and concrete checks, preserves managed Risk auto / Minimal / offline and saved private sharing, and uses the established trusted development/Managed Local setup with the existing account. Hosted fixtures and CLI live-model results do not claim this Mac account/UI check ran. The ADHOC preview bundle intentionally refuses Managed Local and cannot substitute for that check. Merge/publication reporting retains this operator follow-up.
After required acceptance and merge, follow the repository CI/release guides: create an unused annotated preview tag on reviewed main, matching stable source/changelog 0.11.7 (
publish-sdks=false). Verify all 38 stable-source preview assets and successful exact-tag release/documentation candidates before publishing Control Plane and documentation images, the whole-release OCI artifact and all six VSIX/checksum assets. Verify public visibility and anonymous immutable-digest pulls with retained publication evidence. This preview publishes neither stable SDK registries nor Marketplace packages. Merge/tag/publication remain pending the required gates; authorization is provided by the task.