5.5 KiB
5.5 KiB
Codex Native Runtime - Phase 1 Sign-off Evidence
Captured on 2026-04-19.
This file records the repo-visible evidence package for the Phase 1 exit gate described in:
Verdict
Phase 1 internal unlock preparation is now complete.
What this proves:
codex-nativecan be enabled intentionally through the internal unlock policy- old Codex lanes remain the default and
autostill resolves to the old adapter/API world - lane-specific rollout states are explicit and honest:
lockedreadyauthentication-requiredruntime-missing
- those states now survive all the way through:
- orchestrator runtime status
- bridge parsing
- dashboard/runtime copy
- settings/runtime copy
- provisioning summaries
What this does not mean:
codex-nativeshould become the default Codex laneautoshould start resolving tocodex-native- broader approval, plugin, or interactive parity claims are now safe
- limited internal unlock has already started
That is Phase 2 territory.
Command Package
agent_teams_orchestrator
Executed:
bun test src/services/runtimeBackends/codexBackendResolver.test.ts \
src/services/runtimeBackends/registry.agentTeams.test.ts \
src/services/runtimeBackends/registry.codexNativeStates.test.ts
Observed result:
14 pass0 fail
Executed:
bun run signoff:codex-native-phase1
Observed result:
- exit code
0 - five live CLI rollout scenarios verified:
lockedinternal-unlock-readyauthentication-requiredruntime-missingauto-fallback-stays-old-lane
claude_team
Executed:
pnpm exec vitest run \
test/main/services/runtime/ClaudeMultimodelBridgeService.test.ts \
test/main/services/runtime/providerAwareCliEnv.test.ts \
test/main/services/runtime/ProviderConnectionService.test.ts \
test/renderer/components/runtime/providerConnectionUi.test.ts \
test/renderer/components/runtime/ProviderRuntimeBackendSelector.test.ts \
test/renderer/components/runtime/ProviderRuntimeSettingsDialog.test.ts \
test/renderer/components/team/dialogs/ProvisioningProviderStatusList.test.ts \
test/renderer/components/cli/CliStatusVisibility.test.ts \
test/main/services/parsing/CodexNativePhase0Smoke.test.ts
Observed result:
9files passed83tests passed0failures
Live CLI Rollout Evidence
Runner:
runtime status --provider codex --json
Observed live scenarios:
Locked
- selected backend:
codex-native - resolved backend:
codex-native - provider status:
Codex native runtime ready - native option:
selectable=falseavailable=truestate=lockedaudience=internalstatusMessage=Ready but locked
Internal unlock ready
- selected backend:
codex-native - resolved backend:
codex-native - provider status:
Codex native runtime ready - native option:
selectable=trueavailable=truestate=readyaudience=internalstatusMessage=Ready for internal use
Authentication required
- selected backend:
codex-native - resolved backend:
null - provider status:
Codex native runtime not ready - native option:
selectable=falseavailable=falsestate=authentication-requiredaudience=internalstatusMessage=Authentication required
Runtime missing
- selected backend:
codex-native - resolved backend:
null - provider status:
Codex native runtime not ready - native option:
selectable=falseavailable=falsestate=runtime-missingaudience=internalstatusMessage=Codex CLI not found
Auto fallback stays on the old lane
- selected backend:
auto - resolved backend:
api - provider status:
Resolved to OpenAI API - native option remains visible for internal rollout:
selectable=trueavailable=truestate=readyaudience=internalstatusMessage=Ready for internal use
This is the explicit proof that internal unlock availability does not mutate auto resolution.
App-facing Truth Proof
Covered by green targeted tests:
test/main/services/runtime/ClaudeMultimodelBridgeService.test.tstest/main/services/runtime/providerAwareCliEnv.test.tstest/main/services/runtime/ProviderConnectionService.test.tstest/renderer/components/runtime/providerConnectionUi.test.tstest/renderer/components/runtime/ProviderRuntimeBackendSelector.test.tstest/renderer/components/runtime/ProviderRuntimeSettingsDialog.test.tstest/renderer/components/team/dialogs/ProvisioningProviderStatusList.test.tstest/renderer/components/cli/CliStatusVisibility.test.ts
These tests prove:
- internal unlock state survives bridge parsing
- internal unlock env survives provider-aware child env building
- dashboard and settings do not flatten native rollout states into generic
Connected via API key - locked/runtime-missing/auth-required states stay visible in user-facing copy
- provisioning summaries keep native rollout state visible
Phase 1 Exit Gate Conclusion
✅ The Phase 1 exit gate is satisfied.
The lane can now be enabled intentionally by internal users, while:
- old Codex lanes remain the safe default
autostill avoidscodex-native- degraded or blocked native states remain explicit and honest
⚠️ The lane should still remain:
- non-default
- explicitly internal
- rollout-gated
- conservative in capability claims
The next step is Phase 2 - limited internal unlock, not broad rollout.