Skip to content

Bind the remaining provider launches to the selected-account lifecycle - #792

Merged
Meta-Develop merged 14 commits into
mainfrom
codex/secret-lifecycle-providers-20261030
Oct 30, 2026
Merged

Meta-Develop merged 14 commits into
mainfrom
codex/secret-lifecycle-providers-20261030

Conversation

@Meta-Develop

Copy link
Copy Markdown
Owner

Stacked on #785 (Grok launches bound to the selected-account lifecycle); it also merges #790 (future selection changes while an account is in use), whose provider verifiers it touches. It is retargeted to main once #785 merges.

Final slice of #725.

  • Codex, Claude, Cursor and Gemini launches with selected-account credentials, and the optional Grok catalog discovery, use the same lifecycle custody as Grok: credential material is resolved only inside guarded spawn construction, metadata is reference-only, and inherited credential environment inputs are explicit.
  • Refusals before the child is released (including Codex auth mismatches and Cursor parent-setup failures that roll back after spawn) finalize as refused and release the account while keeping their containment evidence; an unproven exit keeps custody.
  • The outer selected-use lease is held through report, relay and staging teardown.
  • The bindings are Linux-only like the account manager dependency; other platforms refuse explicitly.

Tests use synthetic material and deterministic child barriers only.

Validation: formatting, 52 exact root tests and 4 account manager tests, the whole external-agent and account-authority test modules and Clippy passed on Linux; other platforms run in CI.

Closes #725.

Stacked on #776 (closed launch lifecycle custody); it is retargeted to main once #776 merges.

Second slice of #725.

- Bind Grok runs to the selected-account launch lifecycle before the adapter declaration and credential capability are constructed.
- Carry admission expiry through process setup and record reference-only lifecycle metadata.
- Finalize from confirmed runner outcomes; setup timeouts and tee conflicts are pre-release refusals that release the account, while an unknown child exit keeps custody.
- Hold the outer selected-use lease through report teardown.

Tests use synthetic material and deterministic child barriers only. Other root providers and the optional catalog lifecycle integration follow separately.

Validation: formatting and 18 exact Linux tests passed; Clippy and the full suites run in CI.
Stacked on #787 (desktop launches through the service operation); it is retargeted to main once #787 merges.

Final slice of #720.

- While a selected account is in use (a held use lease or a service-owned launch operation), operators can change the future selection and modify other accounts of the same provider.
- The exact in-use account incarnation stays protected from replacement, deletion and credential changes until its lease ends; unknown lease state fails closed.
- Admitted runs no longer require the frozen binding to remain the current selection: once the lease is held, the provider verifiers recheck only that the frozen incarnation is still complete and unreplaced, so a future selection never affects the running child.

Validation: formatting, the core and root-crate exact tests and Clippy for both crates passed on Linux; desktop-feature builds and platform suites run in CI.
@Meta-Develop
Meta-Develop changed the base branch from codex/secret-lifecycle-executor-20261030 to main October 29, 2026 23:44
@Meta-Develop
Meta-Develop merged commit b6a1183 into main Oct 30, 2026
3 of 20 checks passed
@Meta-Develop
Meta-Develop deleted the codex/secret-lifecycle-providers-20261030 branch October 30, 2026 00:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integrate declared secret lifecycle with production provider dispatch

1 participant