.gitignore | 2 + apps/desktop/.gitignore | 2 - apps/desktop/package.json | 4 +- apps/desktop/src/app/DesktopApp.ts | 240 ++++ apps/desktop/src/app/DesktopAppIdentity.test.ts | 176 +++ apps/desktop/src/app/DesktopAppIdentity.ts | 127 ++ apps/desktop/src/app/DesktopAssets.ts | 85 ++ apps/desktop/src/app/DesktopConfig.ts | 58 + apps/desktop/src/app/DesktopEnvironment.test.ts | 117 ++ apps/desktop/src/app/DesktopEnvironment.ts | 249 ++++ apps/desktop/src/app/DesktopLifecycle.ts | 233 +++ apps/desktop/src/app/DesktopObservability.test.ts | 162 +++ apps/desktop/src/app/DesktopObservability.ts | 395 ++++++ apps/desktop/src/app/DesktopState.ts | 21 + apps/desktop/src/appBranding.test.ts | 47 - apps/desktop/src/appBranding.ts | 28 - apps/desktop/src/backend/DesktopBackendConfiguration.test.ts | 195 +++ apps/desktop/src/backend/DesktopBackendConfiguration.ts | 170 +++ apps/desktop/src/backend/DesktopBackendManager.test.ts | 490 +++++++ apps/desktop/src/backend/DesktopBackendManager.ts | 596 ++++++++ apps/desktop/src/backendPort.test.ts | 109 -- apps/desktop/src/backendPort.ts | 83 -- apps/desktop/src/backendReadiness.test.ts | 114 -- apps/desktop/src/backendReadiness.ts | 107 -- apps/desktop/src/backendStartupReadiness.test.ts | 58 - apps/desktop/src/backendStartupReadiness.ts | 56 - apps/desktop/src/clientPersistence.test.ts | 250 ---- apps/desktop/src/clientPersistence.ts | 238 ---- apps/desktop/src/confirmDialog.test.ts | 57 - apps/desktop/src/confirmDialog.ts | 26 - apps/desktop/src/desktopSettings.test.ts | 230 --- apps/desktop/src/desktopSettings.ts | 125 -- apps/desktop/src/electron/ElectronApp.test.ts | 109 ++ apps/desktop/src/electron/ElectronApp.ts | 118 ++ apps/desktop/src/electron/ElectronDialog.test.ts | 93 ++ apps/desktop/src/electron/ElectronDialog.ts | 84 ++ apps/desktop/src/electron/ElectronMenu.test.ts | 119 ++ apps/desktop/src/electron/ElectronMenu.ts | 181 +++ apps/desktop/src/electron/ElectronProtocol.test.ts | 105 ++ apps/desktop/src/electron/ElectronProtocol.ts | 272 ++++ apps/desktop/src/electron/ElectronSafeStorage.ts | 70 + apps/desktop/src/electron/ElectronShell.test.ts | 59 + apps/desktop/src/electron/ElectronShell.ts | 50 + apps/desktop/src/electron/ElectronTheme.test.ts | 52 + apps/desktop/src/electron/ElectronTheme.ts | 40 + apps/desktop/src/electron/ElectronUpdater.test.ts | 79 ++ apps/desktop/src/electron/ElectronUpdater.ts | 139 ++ apps/desktop/src/electron/ElectronWindow.test.ts | 51 + apps/desktop/src/electron/ElectronWindow.ts | 135 ++ apps/desktop/src/ipc/DesktopIpc.ts | 219 +++ apps/desktop/src/ipc/DesktopIpcHandlers.ts | 84 ++ apps/desktop/src/ipc/channels.ts | 35 + apps/desktop/src/ipc/methods/clientSettings.ts | 28 + apps/desktop/src/ipc/methods/savedEnvironments.ts | 76 + apps/desktop/src/ipc/methods/serverExposure.ts | 69 + apps/desktop/src/ipc/methods/sshEnvironment.ts | 127 ++ apps/desktop/src/ipc/methods/updates.ts | 62 + apps/desktop/src/ipc/methods/window.ts | 135 ++ apps/desktop/src/main.ts | 2425 ++------------------------------ apps/desktop/src/preload.ts | 128 +- apps/desktop/src/rotatingFileSink.test.ts | 74 - apps/desktop/src/runtimeArch.test.ts | 49 - apps/desktop/src/runtimeArch.ts | 39 - apps/desktop/src/serverExposure.test.ts | 258 ---- apps/desktop/src/serverExposure.ts | 188 --- apps/desktop/src/serverExposure/DesktopServerExposure.test.ts | 365 +++++ apps/desktop/src/serverExposure/DesktopServerExposure.ts | 548 ++++++++ apps/desktop/src/serverExposure/tailscaleEndpointProvider.test.ts | 142 ++ apps/desktop/src/serverExposure/tailscaleEndpointProvider.ts | 138 ++ apps/desktop/src/serverListeningDetector.test.ts | 31 - apps/desktop/src/serverListeningDetector.ts | 56 - apps/desktop/src/settings/DesktopAppSettings.test.ts | 284 ++++ apps/desktop/src/settings/DesktopAppSettings.ts | 318 +++++ apps/desktop/src/settings/DesktopClientSettings.test.ts | 185 +++ apps/desktop/src/settings/DesktopClientSettings.ts | 118 ++ apps/desktop/src/settings/DesktopSavedEnvironments.test.ts | 344 +++++ apps/desktop/src/settings/DesktopSavedEnvironments.ts | 390 +++++ apps/desktop/src/shell/DesktopShellEnvironment.test.ts | 232 +++ apps/desktop/src/shell/DesktopShellEnvironment.ts | 356 +++++ apps/desktop/src/ssh/DesktopSshEnvironment.test.ts | 118 ++ apps/desktop/src/ssh/DesktopSshEnvironment.ts | 150 ++ apps/desktop/src/ssh/DesktopSshPasswordPrompts.test.ts | 144 ++ apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts | 332 +++++ apps/desktop/src/ssh/DesktopSshRemoteApi.test.ts | 79 ++ apps/desktop/src/ssh/DesktopSshRemoteApi.ts | 124 ++ apps/desktop/src/sshEnvironment.test.ts | 98 -- apps/desktop/src/sshEnvironment.ts | 420 ------ apps/desktop/src/syncShellEnvironment.test.ts | 289 ---- apps/desktop/src/syncShellEnvironment.ts | 109 -- apps/desktop/src/tailscaleEndpointProvider.test.ts | 122 -- apps/desktop/src/tailscaleEndpointProvider.ts | 142 -- apps/desktop/src/updateChannels.test.ts | 41 - apps/desktop/src/updateChannels.ts | 18 - apps/desktop/src/updateMachine.test.ts | 140 -- apps/desktop/src/updateMachine.ts | 166 --- apps/desktop/src/updateState.test.ts | 175 --- apps/desktop/src/updateState.ts | 52 - apps/desktop/src/updates/DesktopUpdates.test.ts | 295 ++++ apps/desktop/src/updates/DesktopUpdates.ts | 664 +++++++++ apps/desktop/src/updates/updateChannels.ts | 11 + apps/desktop/src/updates/updateMachine.test.ts | 140 ++ apps/desktop/src/updates/updateMachine.ts | 174 +++ apps/desktop/src/window/DesktopApplicationMenu.test.ts | 132 ++ apps/desktop/src/window/DesktopApplicationMenu.ts | 212 +++ apps/desktop/src/window/DesktopWindow.test.ts | 180 +++ apps/desktop/src/window/DesktopWindow.ts | 368 +++++ apps/desktop/src/windowReveal.test.ts | 74 - apps/desktop/src/windowReveal.ts | 28 - apps/desktop/tsconfig.json | 14 +- apps/server/src/cli/config.test.ts | 107 +- apps/server/src/cli/config.ts | 29 +- apps/server/src/http.ts | 2 +- apps/server/src/observability/Attributes.test.ts | 37 +- apps/server/src/observability/Attributes.ts | 80 -- apps/server/src/observability/Layers/Observability.ts | 3 +- apps/server/src/observability/LocalFileTracer.test.ts | 117 -- apps/server/src/observability/LocalFileTracer.ts | 112 -- apps/server/src/observability/Services/BrowserTraceCollector.ts | 3 +- apps/server/src/observability/TraceRecord.ts | 287 ---- apps/server/src/observability/TraceSink.test.ts | 152 -- apps/server/src/observability/TraceSink.ts | 68 - apps/server/src/provider/Layers/CursorAdapter.test.ts | 1 + apps/server/src/provider/Layers/OpenCodeAdapter.test.ts | 34 +- apps/server/src/sourceControl/SourceControlRepositoryService.ts | 36 +- apps/server/src/vcs/GitVcsDriverCore.ts | 4 +- apps/web/tsconfig.json | 2 +- bun.lock | 6 +- packages/client-runtime/tsconfig.json | 14 + packages/contracts/src/auth.ts | 2 +- packages/contracts/src/baseSchemas.ts | 3 +- packages/contracts/src/desktopBootstrap.ts | 18 + packages/contracts/src/editor.ts | 2 +- packages/contracts/src/environment.ts | 3 +- packages/contracts/src/filesystem.ts | 2 +- packages/contracts/src/git.test.ts | 2 +- packages/contracts/src/git.ts | 2 +- packages/contracts/src/index.ts | 1 + packages/contracts/src/ipc.ts | 210 ++- packages/contracts/src/keybindings.test.ts | 4 +- packages/contracts/src/keybindings.ts | 2 +- packages/contracts/src/model.ts | 4 +- packages/contracts/src/orchestration.test.ts | 3 +- packages/contracts/src/orchestration.ts | 7 +- packages/contracts/src/project.ts | 2 +- packages/contracts/src/provider.test.ts | 2 +- packages/contracts/src/provider.ts | 2 +- packages/contracts/src/providerInstance.test.ts | 2 +- packages/contracts/src/providerInstance.ts | 3 +- packages/contracts/src/providerRuntime.test.ts | 2 +- packages/contracts/src/providerRuntime.ts | 3 +- packages/contracts/src/remoteAccess.ts | 2 +- packages/contracts/src/rpc.ts | 2 +- packages/contracts/src/server.test.ts | 2 +- packages/contracts/src/server.ts | 3 +- packages/contracts/src/settings.test.ts | 2 +- packages/contracts/src/settings.ts | 2 +- packages/contracts/src/sourceControl.ts | 2 +- packages/contracts/src/terminal.test.ts | 2 +- packages/contracts/src/terminal.ts | 3 +- packages/contracts/src/vcs.ts | 2 +- packages/contracts/tsconfig.json | 4 +- packages/effect-acp/scripts/generate.ts | 7 +- packages/effect-acp/tsconfig.json | 4 +- packages/effect-codex-app-server/scripts/generate.ts | 7 +- packages/effect-codex-app-server/tsconfig.json | 4 +- packages/shared/package.json | 4 + packages/shared/src/DrainableWorker.test.ts | 3 +- packages/shared/src/DrainableWorker.ts | 6 +- packages/shared/src/KeyedCoalescingWorker.test.ts | 5 +- packages/shared/src/KeyedCoalescingWorker.ts | 6 +- packages/shared/src/Net.test.ts | 30 +- packages/shared/src/Net.ts | 183 +-- packages/shared/src/observability.test.ts | 314 +++++ packages/shared/src/observability.ts | 539 +++++++ packages/shared/src/schemaJson.ts | 20 +- packages/shared/src/serverSettings.ts | 2 +- packages/shared/src/shell.ts | 4 +- packages/shared/tsconfig.json | 14 + packages/ssh/src/auth.test.ts | 5 +- packages/ssh/src/auth.ts | 7 +- packages/ssh/src/command.test.ts | 8 +- packages/ssh/src/command.ts | 8 +- packages/ssh/src/config.test.ts | 4 +- packages/ssh/src/config.ts | 5 +- packages/ssh/src/errors.ts | 2 +- packages/ssh/src/tunnel.test.ts | 8 +- packages/ssh/src/tunnel.ts | 38 +- packages/ssh/tsconfig.json | 3 +- packages/tailscale/src/tailscale.test.ts | 5 +- packages/tailscale/src/tailscale.ts | 6 +- 190 files changed, 14118 insertions(+), 7654 deletions(-)