agent-ecosystem/docs/research/codex-native-runtime-phase-4-signoff-evidence.md
2026-04-19 22:22:13 +03:00

6.5 KiB

Codex Native Runtime - Phase 4 Sign-off Evidence

Captured on 2026-04-19.

This file records the repo-visible evidence package for the final native-only Codex cutover.

Related documents:

Verdict

Phase 4 legacy removal is now complete.

What this proves:

  • codex-native is now the only Codex runtime lane
  • old adapter and api Codex lanes are no longer launchable through active runtime code paths
  • Codex runtime status now exposes a single native option instead of a mixed legacy/native selector
  • stored legacy backend values normalize forward to codex-native
  • UI-facing Codex status, model availability, launch identity, replay parsing, and provisioning all remain truthful after legacy removal

What this does not mean:

  • plugin execution parity is now guaranteed for multimodel Codex sessions
  • broader app-server or interactive-request parity has been added
  • Codex runtime failures silently fall back to another hidden Codex implementation

Command Package

agent_teams_orchestrator

Executed:

bun test src/services/runtimeBackends/codexBackendResolver.test.ts \
  src/services/runtimeBackends/registry.codexNativeStates.test.ts \
  src/services/runtimeBackends/registry.agentTeams.test.ts \
  src/utils/swarm/spawnUtils.test.ts

Observed result:

  • 23 pass
  • 0 fail

Executed:

bun run signoff:codex-native-phase4

Observed result:

  • exit code 0
  • four live CLI native-only scenarios verified:
    • ready
    • authentication-required
    • runtime-missing
    • openai-api-key-also-works

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/main/ipc/configValidation.test.ts \
  test/main/services/team/TeamProvisioningService.test.ts \
  test/main/services/parsing/CodexNativePhase0Smoke.test.ts \
  test/main/services/parsing/SessionParser.test.ts \
  test/main/services/team/BoardTaskExactLogStrictParser.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/cli/CliStatusVisibility.test.ts \
  test/renderer/components/team/dialogs/ProvisioningProviderStatusList.test.ts \
  test/renderer/components/team/dialogs/launchDialogPrefill.test.ts \
  test/renderer/utils/memberRuntimeSummary.test.ts \
  test/renderer/utils/teamModelAvailability.test.ts

Observed result:

  • 16 files passed
  • 180 tests passed
  • 0 failures

Live Native-only Status Evidence

Runner:

runtime status --provider codex --json

Observed live scenarios:

Ready

  • selected backend: codex-native
  • resolved backend: codex-native
  • provider status: Codex native runtime ready
  • native option:
    • selectable=true
    • available=true
    • state=ready
    • audience=general
    • statusMessage=Ready

Authentication required

  • selected backend: codex-native
  • resolved backend: null
  • provider status: Codex native runtime unavailable
  • native option:
    • selectable=false
    • available=false
    • state=authentication-required
    • audience=general
    • statusMessage=Authentication required

Runtime missing

  • selected backend: codex-native
  • resolved backend: null
  • provider status: Codex native runtime unavailable
  • native option:
    • selectable=false
    • available=false
    • state=runtime-missing
    • audience=general
    • statusMessage=Codex CLI not found

OPENAI_API_KEY also works

  • selected backend: codex-native
  • resolved backend: codex-native
  • provider status: Codex native runtime ready
  • explicit proof that the native lane still accepts:
    • CODEX_API_KEY
    • or OPENAI_API_KEY

This is the explicit proof that the final cutover no longer depends on a legacy adapter/API runtime seam while still preserving the supported credential surface.

App-facing Native-only Truth Proof

Covered by green targeted tests:

  • test/main/services/runtime/ClaudeMultimodelBridgeService.test.ts
  • test/main/services/runtime/providerAwareCliEnv.test.ts
  • test/main/services/runtime/ProviderConnectionService.test.ts
  • test/main/ipc/configValidation.test.ts
  • test/main/services/team/TeamProvisioningService.test.ts
  • test/main/services/parsing/CodexNativePhase0Smoke.test.ts
  • test/main/services/parsing/SessionParser.test.ts
  • test/main/services/team/BoardTaskExactLogStrictParser.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/cli/CliStatusVisibility.test.ts
  • test/renderer/components/team/dialogs/ProvisioningProviderStatusList.test.ts
  • test/renderer/components/team/dialogs/launchDialogPrefill.test.ts
  • test/renderer/utils/memberRuntimeSummary.test.ts
  • test/renderer/utils/teamModelAvailability.test.ts

These tests prove:

  • legacy Codex backend values normalize forward to codex-native
  • settings and dashboard now describe Codex as native-first, not adapter/API-first
  • provider backend identity survives team launch, relaunch, and launch-prefill flows
  • parser and exact-log readers stay truthful for native transcript authority rows
  • provisioning summaries and member runtime summaries no longer flatten native truth into old Codex copy
  • team model availability is keyed to the native runtime path instead of old ChatGPT-subscription heuristics

Legacy Removal Proof

Covered by green targeted tests and runtime sign-off:

  • orchestrator runtime backend resolver now exposes only codex-native
  • runtime registry now exposes a single Codex backend option
  • no active runtime branch launches Codex through:
    • adapter
    • api
  • old transport-only smoke/signoff scripts tied to legacy Codex runtime were removed

This is the explicit proof that Phase 4 is a real cutover, not just a UI relabeling.

Sign-off Conclusion

The Phase 4 exit gate is satisfied.

Codex inside the multimodel runtime is now native-only.

There is no longer a product-supported legacy Codex runtime lane to roll back to inside normal UI flows.