apps/desktop/src/clientPersistence.test.ts | 1 + apps/server/integration/OrchestrationEngineHarness.integration.ts | 44 +- apps/server/integration/TestProviderAdapter.integration.ts | 17 +- apps/server/integration/fixtures/providerRuntime.ts | 4 +- apps/server/integration/orchestrationEngine.integration.test.ts | 178 +++- apps/server/integration/providerService.integration.test.ts | 37 +- apps/server/src/git/Layers/ClaudeTextGeneration.test.ts | 311 +++--- apps/server/src/git/Layers/ClaudeTextGeneration.ts | 55 +- apps/server/src/git/Layers/CodexTextGeneration.test.ts | 528 +++++----- apps/server/src/git/Layers/CodexTextGeneration.ts | 97 +- apps/server/src/git/Layers/CursorTextGeneration.test.ts | 311 +++--- apps/server/src/git/Layers/CursorTextGeneration.ts | 56 +- apps/server/src/git/Layers/OpenCodeTextGeneration.test.ts | 354 +++---- apps/server/src/git/Layers/OpenCodeTextGeneration.ts | 77 +- apps/server/src/git/Layers/RoutingTextGeneration.ts | 104 -- apps/server/src/git/Layers/TextGenerationLive.test.ts | 117 +++ apps/server/src/git/Layers/TextGenerationLive.ts | 101 ++ apps/server/src/observability/Metrics.test.ts | 10 +- apps/server/src/orchestration/Layers/CheckpointReactor.test.ts | 60 +- apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts | 51 +- apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts | 33 +- apps/server/src/orchestration/Layers/ProjectionPipeline.ts | 1 + apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.test.ts | 18 +- apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts | 6 + apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts | 438 ++++++-- apps/server/src/orchestration/Layers/ProviderCommandReactor.ts | 183 +++- apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts | 229 +++-- apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts | 6 + apps/server/src/orchestration/commandInvariants.test.ts | 13 +- apps/server/src/orchestration/decider.delete.test.ts | 5 +- apps/server/src/orchestration/decider.projectScripts.test.ts | 11 +- apps/server/src/orchestration/projector.test.ts | 21 +- apps/server/src/persistence/Layers/ProjectionRepositories.test.ts | 14 +- apps/server/src/persistence/Layers/ProjectionThreadSessions.ts | 4 + apps/server/src/persistence/Layers/ProviderSessionRuntime.ts | 5 + apps/server/src/persistence/Migrations.ts | 4 + apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts | 74 ++ apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts | 38 + apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts | 21 + apps/server/src/persistence/Services/ProjectionThreadSessions.ts | 2 + apps/server/src/persistence/Services/ProviderSessionRuntime.ts | 9 + apps/server/src/provider/Drivers/ClaudeDriver.ts | 157 +++ apps/server/src/provider/Drivers/ClaudeHome.test.ts | 52 + apps/server/src/provider/Drivers/ClaudeHome.ts | 43 + apps/server/src/provider/Drivers/CodexDriver.ts | 171 +++ apps/server/src/provider/Drivers/CodexHomeLayout.test.ts | 209 ++++ apps/server/src/provider/Drivers/CodexHomeLayout.ts | 263 +++++ apps/server/src/provider/Drivers/CursorDriver.ts | 148 +++ apps/server/src/provider/Drivers/OpenCodeDriver.ts | 135 +++ apps/server/src/provider/Errors.ts | 41 + apps/server/src/provider/Layers/ClaudeAdapter.test.ts | 339 +++--- apps/server/src/provider/Layers/ClaudeAdapter.ts | 63 +- apps/server/src/provider/Layers/ClaudeProvider.ts | 484 +++------ apps/server/src/provider/Layers/CodexAdapter.test.ts | 186 +++- apps/server/src/provider/Layers/CodexAdapter.ts | 65 +- apps/server/src/provider/Layers/CodexProvider.ts | 99 +- apps/server/src/provider/Layers/CodexSessionRuntime.ts | 61 +- apps/server/src/provider/Layers/CursorAdapter.test.ts | 213 +++- apps/server/src/provider/Layers/CursorAdapter.ts | 73 +- apps/server/src/provider/Layers/CursorProvider.test.ts | 159 ++- apps/server/src/provider/Layers/CursorProvider.ts | 665 ++++++------ apps/server/src/provider/Layers/OpenCodeAdapter.test.ts | 286 +++++- apps/server/src/provider/Layers/OpenCodeAdapter.ts | 1770 ++++++++++++++++---------------- apps/server/src/provider/Layers/OpenCodeProvider.test.ts | 119 +-- apps/server/src/provider/Layers/OpenCodeProvider.ts | 378 ++++--- apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts | 148 ++- apps/server/src/provider/Layers/ProviderAdapterRegistry.ts | 133 ++- apps/server/src/provider/Layers/ProviderEventLoggers.ts | 83 ++ apps/server/src/provider/Layers/ProviderInstanceRegistryHydration.ts | 176 ++++ apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts | 357 +++++++ apps/server/src/provider/Layers/ProviderInstanceRegistryLive.ts | 434 ++++++++ apps/server/src/provider/Layers/ProviderRegistry.test.ts | 850 ++++++++++++--- apps/server/src/provider/Layers/ProviderRegistry.ts | 546 +++++++--- apps/server/src/provider/Layers/ProviderService.test.ts | 583 ++++++++--- apps/server/src/provider/Layers/ProviderService.ts | 418 ++++++-- apps/server/src/provider/Layers/ProviderSessionDirectory.test.ts | 25 +- apps/server/src/provider/Layers/ProviderSessionDirectory.ts | 24 +- apps/server/src/provider/Layers/ProviderSessionReaper.test.ts | 31 +- apps/server/src/provider/Layers/scopedSafeTeardown.test.ts | 94 ++ apps/server/src/provider/Layers/scopedSafeTeardown.ts | 61 ++ apps/server/src/provider/ProviderDriver.ts | 167 +++ apps/server/src/provider/ProviderInstanceEnvironment.test.ts | 21 + apps/server/src/provider/ProviderInstanceEnvironment.ts | 16 + apps/server/src/provider/Services/ClaudeAdapter.ts | 29 +- apps/server/src/provider/Services/ClaudeProvider.ts | 9 - apps/server/src/provider/Services/CodexAdapter.ts | 29 +- apps/server/src/provider/Services/CodexProvider.ts | 9 - apps/server/src/provider/Services/CursorAdapter.ts | 25 +- apps/server/src/provider/Services/CursorProvider.ts | 9 - apps/server/src/provider/Services/OpenCodeAdapter.ts | 25 +- apps/server/src/provider/Services/OpenCodeProvider.ts | 9 - apps/server/src/provider/Services/ProviderAdapter.ts | 4 +- apps/server/src/provider/Services/ProviderAdapterRegistry.ts | 81 +- apps/server/src/provider/Services/ProviderInstanceRegistry.ts | 84 ++ apps/server/src/provider/Services/ProviderInstanceRegistryMutator.ts | 52 + apps/server/src/provider/Services/ProviderRegistry.ts | 29 +- apps/server/src/provider/Services/ProviderService.ts | 11 +- apps/server/src/provider/Services/ProviderSessionDirectory.ts | 13 +- apps/server/src/provider/acp/AcpAdapterSupport.test.ts | 3 +- apps/server/src/provider/acp/AcpAdapterSupport.ts | 4 +- apps/server/src/provider/acp/AcpCoreRuntimeEvents.test.ts | 14 +- apps/server/src/provider/acp/AcpCoreRuntimeEvents.ts | 14 +- apps/server/src/provider/acp/AcpNativeLogging.ts | 6 +- apps/server/src/provider/acp/AcpSessionRuntime.ts | 2 +- apps/server/src/provider/acp/CursorAcpSupport.ts | 5 +- apps/server/src/provider/builtInDrivers.ts | 50 + apps/server/src/provider/builtInProviderCatalog.ts | 50 +- apps/server/src/provider/makeManagedServerProvider.test.ts | 8 +- apps/server/src/provider/opencodeRuntime.ts | 8 +- apps/server/src/provider/providerSnapshot.test.ts | 4 +- apps/server/src/provider/providerSnapshot.ts | 9 +- apps/server/src/provider/providerStatusCache.test.ts | 106 +- apps/server/src/provider/providerStatusCache.ts | 80 +- apps/server/src/provider/testUtils/providerAdapterRegistryMock.ts | 95 ++ apps/server/src/provider/unavailableProviderSnapshot.ts | 72 ++ apps/server/src/server.test.ts | 12 +- apps/server/src/server.ts | 76 +- apps/server/src/serverRuntimeStartup.test.ts | 6 +- apps/server/src/serverRuntimeStartup.ts | 7 +- apps/server/src/serverSettings.test.ts | 242 ++++- apps/server/src/serverSettings.ts | 246 ++++- apps/server/src/ws.ts | 42 +- apps/web/src/components/ChatView.browser.tsx | 221 +++- apps/web/src/components/ChatView.logic.test.ts | 27 +- apps/web/src/components/ChatView.logic.ts | 35 +- apps/web/src/components/ChatView.tsx | 89 +- apps/web/src/components/CommandPalette.logic.test.ts | 4 +- apps/web/src/components/CommandPalette.tsx | 7 +- apps/web/src/components/Icons.tsx | 23 + apps/web/src/components/KeybindingsToast.browser.tsx | 30 +- apps/web/src/components/Sidebar.logic.test.ts | 15 +- apps/web/src/components/chat/ChatComposer.tsx | 187 +++- apps/web/src/components/chat/CompactComposerControlsMenu.browser.tsx | 52 +- apps/web/src/components/chat/ComposerCommandMenu.tsx | 6 +- apps/web/src/components/chat/ModelListRow.tsx | 33 +- apps/web/src/components/chat/ModelPickerContent.tsx | 368 ++++--- apps/web/src/components/chat/ModelPickerSidebar.tsx | 373 ++++--- apps/web/src/components/chat/ProviderInstanceIcon.tsx | 73 ++ apps/web/src/components/chat/ProviderModelPicker.browser.tsx | 252 ++++- apps/web/src/components/chat/ProviderModelPicker.tsx | 83 +- apps/web/src/components/chat/ProviderStatusBanner.tsx | 4 +- apps/web/src/components/chat/TraitsPicker.tsx | 10 +- apps/web/src/components/chat/composerProviderState.test.tsx | 12 +- apps/web/src/components/chat/composerProviderState.tsx | 8 +- apps/web/src/components/chat/composerSlashCommandSearch.test.ts | 11 +- apps/web/src/components/chat/modelPickerModelHighlights.ts | 4 +- apps/web/src/components/chat/modelPickerSearch.test.ts | 40 +- apps/web/src/components/chat/modelPickerSearch.ts | 22 +- apps/web/src/components/chat/providerIconUtils.ts | 19 +- apps/web/src/components/settings/AddProviderInstanceDialog.tsx | 493 +++++++++ apps/web/src/components/settings/ProviderInstanceCard.test.ts | 36 + apps/web/src/components/settings/ProviderInstanceCard.tsx | 814 +++++++++++++++ apps/web/src/components/settings/ProviderModelsSection.tsx | 411 ++++++++ apps/web/src/components/settings/SettingsPanels.browser.tsx | 10 +- apps/web/src/components/settings/SettingsPanels.logic.test.ts | 63 ++ apps/web/src/components/settings/SettingsPanels.logic.ts | 43 + apps/web/src/components/settings/SettingsPanels.tsx | 1128 ++++++++------------ apps/web/src/components/settings/providerDriverMeta.ts | 151 +++ apps/web/src/components/settings/providerStatus.ts | 91 ++ apps/web/src/components/ui/draft-input.tsx | 21 + apps/web/src/composerDraftStore.test.ts | 243 +++-- apps/web/src/composerDraftStore.ts | 382 ++++--- apps/web/src/environmentGrouping.test.ts | 4 +- apps/web/src/environments/runtime/service.threadSubscriptions.test.ts | 3 +- apps/web/src/hooks/useCommitOnBlur.ts | 49 + apps/web/src/lib/threadSort.test.ts | 10 +- apps/web/src/localApi.test.ts | 11 +- apps/web/src/modelOrdering.test.ts | 52 + apps/web/src/modelOrdering.ts | 86 ++ apps/web/src/modelSelection.test.ts | 251 +++++ apps/web/src/modelSelection.ts | 271 +++-- apps/web/src/orchestrationEventEffects.test.ts | 5 +- apps/web/src/providerInstances.test.ts | 132 +++ apps/web/src/providerInstances.ts | 248 +++++ apps/web/src/providerModels.ts | 47 +- apps/web/src/rpc/serverState.test.ts | 5 +- apps/web/src/rpc/wsRpcClient.ts | 12 +- apps/web/src/session-logic.ts | 22 +- apps/web/src/store.test.ts | 27 +- apps/web/src/store.ts | 21 +- apps/web/src/types.ts | 6 +- apps/web/src/worktreeCleanup.test.ts | 4 +- apps/web/vite.config.ts | 8 +- docs/providers/claude.md | 224 ++++ docs/providers/codex.md | 140 +++ packages/contracts/src/index.ts | 1 + packages/contracts/src/ipc.ts | 10 +- packages/contracts/src/model.ts | 56 +- packages/contracts/src/orchestration.test.ts | 111 +- packages/contracts/src/orchestration.ts | 99 +- packages/contracts/src/provider.test.ts | 145 ++- packages/contracts/src/provider.ts | 16 +- packages/contracts/src/providerInstance.test.ts | 192 ++++ packages/contracts/src/providerInstance.ts | 148 +++ packages/contracts/src/providerRuntime.test.ts | 17 + packages/contracts/src/providerRuntime.ts | 8 +- packages/contracts/src/rpc.ts | 11 +- packages/contracts/src/server.test.ts | 24 +- packages/contracts/src/server.ts | 55 +- packages/contracts/src/settings.test.ts | 94 ++ packages/contracts/src/settings.ts | 99 +- packages/shared/src/model.test.ts | 42 +- packages/shared/src/model.ts | 28 +- packages/shared/src/serverSettings.test.ts | 90 +- packages/shared/src/serverSettings.ts | 17 +- 205 files changed, 17851 insertions(+), 6517 deletions(-)