apps/desktop/src/main.ts | 9 + apps/desktop/src/preload.ts | 8 + apps/server/integration/OrchestrationEngineHarness.integration.ts | 2 + apps/server/src/config.ts | 2 + apps/server/src/environment/Layers/ServerEnvironment.test.ts | 124 ++ apps/server/src/environment/Layers/ServerEnvironment.ts | 94 + apps/server/src/environment/Services/ServerEnvironment.ts | 13 + apps/server/src/git/Layers/GitManager.test.ts | 6 +- apps/server/src/orchestration/Layers/CheckpointReactor.test.ts | 2 + apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts | 5 + apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts | 2 + apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.test.ts | 7 +- apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts | 534 ++--- apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts | 2 + apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts | 2 + apps/server/src/project/Layers/RepositoryIdentityResolver.test.ts | 193 ++ apps/server/src/project/Layers/RepositoryIdentityResolver.ts | 147 ++ apps/server/src/project/Services/RepositoryIdentityResolver.ts | 12 + apps/server/src/server.test.ts | 246 ++- apps/server/src/server.ts | 4 + apps/server/src/serverLifecycleEvents.test.ts | 10 + apps/server/src/serverRuntimeStartup.ts | 14 +- apps/server/src/ws.ts | 56 +- apps/web/index.html | 1 + apps/web/package.json | 1 + apps/web/src/components/BranchToolbar.tsx | 50 +- apps/web/src/components/BranchToolbarBranchSelector.tsx | 23 +- apps/web/src/components/ChatMarkdown.tsx | 4 +- apps/web/src/components/ChatView.browser.tsx | 559 ++--- apps/web/src/components/ChatView.logic.test.ts | 64 +- apps/web/src/components/ChatView.logic.ts | 45 +- apps/web/src/components/ChatView.tsx | 776 ++++--- apps/web/src/components/DiffPanel.tsx | 41 +- apps/web/src/components/GitActionsControl.browser.tsx | 120 +- apps/web/src/components/GitActionsControl.tsx | 62 +- apps/web/src/components/KeybindingsToast.browser.tsx | 49 +- apps/web/src/components/PlanSidebar.tsx | 9 +- apps/web/src/components/PullRequestThreadDialog.tsx | 10 +- apps/web/src/components/Sidebar.logic.test.ts | 6 +- apps/web/src/components/Sidebar.tsx | 3485 +++++++++++++++++++------------- apps/web/src/components/ThreadTerminalDrawer.browser.tsx | 247 +++ apps/web/src/components/ThreadTerminalDrawer.tsx | 36 +- apps/web/src/components/chat/ChatHeader.tsx | 11 +- apps/web/src/components/chat/CompactComposerControlsMenu.browser.tsx | 62 +- apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx | 38 +- apps/web/src/components/chat/MessagesTimeline.test.tsx | 4 + apps/web/src/components/chat/MessagesTimeline.tsx | 5 +- apps/web/src/components/chat/MessagesTimeline.virtualization.browser.tsx | 29 +- apps/web/src/components/chat/OpenInPicker.tsx | 6 +- apps/web/src/components/chat/ProposedPlanCard.tsx | 7 +- apps/web/src/components/chat/TraitsPicker.browser.tsx | 54 +- apps/web/src/components/chat/TraitsPicker.tsx | 17 +- apps/web/src/components/chat/composerProviderRegistry.test.tsx | 34 +- apps/web/src/components/chat/composerProviderRegistry.tsx | 146 +- apps/web/src/components/settings/SettingsPanels.browser.tsx | 24 +- apps/web/src/components/settings/SettingsPanels.tsx | 71 +- apps/web/src/composerDraftStore.test.ts | 490 +++-- apps/web/src/composerDraftStore.ts | 2520 ++++++++++++++--------- apps/web/src/editorPreferences.ts | 4 +- apps/web/src/environmentApi.ts | 67 + apps/web/src/environmentBootstrap.ts | 65 + apps/web/src/hooks/useHandleNewThread.ts | 123 +- apps/web/src/hooks/useSettings.ts | 10 +- apps/web/src/hooks/useThreadActions.ts | 192 +- apps/web/src/lib/gitReactQuery.test.ts | 43 +- apps/web/src/lib/gitReactQuery.ts | 158 +- apps/web/src/lib/gitStatusState.test.ts | 56 +- apps/web/src/lib/gitStatusState.ts | 154 +- apps/web/src/lib/projectReactQuery.ts | 25 +- apps/web/src/lib/providerReactQuery.test.ts | 15 +- apps/web/src/lib/providerReactQuery.ts | 15 +- apps/web/src/lib/terminalStateCleanup.test.ts | 33 +- apps/web/src/lib/terminalStateCleanup.ts | 20 +- apps/web/src/lib/utils.test.ts | 42 +- apps/web/src/lib/utils.ts | 21 +- apps/web/src/localApi.test.ts | 444 ++++ apps/web/src/localApi.ts | 94 + apps/web/src/logicalProject.ts | 19 + apps/web/src/nativeApi.ts | 31 - apps/web/src/orchestrationEventEffects.test.ts | 6 +- apps/web/src/orchestrationEventEffects.ts | 8 +- apps/web/src/routeTree.gen.ts | 56 +- apps/web/src/routes/__root.tsx | 485 +++-- apps/web/src/routes/_chat.$environmentId.$threadId.tsx | 292 +++ apps/web/src/routes/_chat.$threadId.tsx | 255 --- apps/web/src/routes/_chat.draft.$draftId.tsx | 86 + apps/web/src/routes/_chat.tsx | 28 +- apps/web/src/rpc/serverState.test.ts | 18 + apps/web/src/store.test.ts | 271 ++- apps/web/src/store.ts | 428 +++- apps/web/src/storeSelectors.ts | 95 +- apps/web/src/terminalStateStore.test.ts | 205 +- apps/web/src/terminalStateStore.ts | 292 +-- apps/web/src/threadRoutes.test.ts | 67 + apps/web/src/threadRoutes.ts | 59 + apps/web/src/threadSelectionStore.test.ts | 106 +- apps/web/src/threadSelectionStore.ts | 104 +- apps/web/src/types.ts | 7 + apps/web/src/uiStateStore.test.ts | 22 +- apps/web/src/uiStateStore.ts | 65 +- apps/web/src/vite-env.d.ts | 4 +- apps/web/src/worktreeCleanup.test.ts | 5 +- apps/web/src/wsNativeApi.test.ts | 417 ---- apps/web/src/wsNativeApi.ts | 117 -- apps/web/src/wsRpcClient.test.ts | 40 +- apps/web/src/wsRpcClient.ts | 165 +- apps/web/src/wsTransport.test.ts | 21 + bun.lock | 15 + packages/client-runtime/package.json | 25 + packages/client-runtime/src/index.ts | 2 + packages/client-runtime/src/knownEnvironment.test.ts | 63 + packages/client-runtime/src/knownEnvironment.ts | 39 + packages/client-runtime/src/scoped.ts | 64 + packages/client-runtime/tsconfig.json | 4 + packages/contracts/src/baseSchemas.ts | 2 + packages/contracts/src/environment.ts | 77 + packages/contracts/src/index.ts | 1 + packages/contracts/src/ipc.ts | 66 +- packages/contracts/src/orchestration.ts | 4 + packages/contracts/src/server.ts | 4 + packages/shared/src/git.test.ts | 49 +- packages/shared/src/git.ts | 50 + scripts/release-smoke.ts | 1 + 123 files changed, 10829 insertions(+), 5592 deletions(-)