Skip to content

Add Windows desktop build and guarded release support - #999

Open
nsxdavid wants to merge 9 commits into
arul28:mainfrom
nsxdavid:windows-native-build
Open

Add Windows desktop build and guarded release support#999
nsxdavid wants to merge 9 commits into
arul28:mainfrom
nsxdavid:windows-native-build

Conversation

@nsxdavid

@nsxdavid nsxdavid commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds a native Windows 10/11 x64 build of ADE while preserving the existing macOS, iOS, and standalone runtime release paths.

The PR covers the Windows desktop runtime, provider CLI execution, background service lifecycle, NSIS packaging and uninstall, automatic updates, CI validation, platform-neutral UI copy, and maintainer documentation for signing and publication.

What changed

Windows runtime

  • Runs ADE’s background service per user without requiring administrator access.
  • Uses user- and channel-specific Windows named pipes.
  • Prevents background commands from repeatedly opening console windows.
  • Adds Windows-safe process launching for Claude, Codex, Cursor, OpenCode, Droid, App Control, and terminal sessions.
  • Preserves prompts containing Windows paths, spaces, symbols, and %VARIABLE% text.
  • Adds recovery for stale or missing background runtime endpoints.

Desktop application

  • Adds Windows window behavior, microphone permission handling, resource monitoring, clipboard support, and platform capability checks.
  • Replaces Mac-specific user-facing language with platform-neutral “computer” wording where the feature also supports Windows.
  • Keeps genuinely macOS-only features identified as such.
  • Retains desktop and iPhone pairing through ADE’s existing sync protocol.

Packaging and updates

  • Adds a per-user Windows x64 NSIS installer.
  • Packages the Windows runtime, CLI, provider dependencies, ConPTY support, and crsqlite.dll.
  • Removes the installation’s background service, CLI shim, and PATH entry during uninstall without removing files owned by another ADE installation or release channel.
  • Adds Windows update metadata while preserving the configured release repository.
  • Keeps the website’s Windows download disabled until maintainers explicitly enable it.

CI and release safety

  • Builds and smoke-tests an unsigned Windows installer for pull requests.
  • Validates the packaged runtime, provider binaries, update settings, uninstall behavior, and release files.
  • Makes public Windows packaging fail when the expected signature or timestamp is missing; it does not silently publish an unsigned fallback.
  • Adds Windows assets to the existing GitHub Release workflow without replacing the macOS or standalone runtime jobs.
  • Does not include signing credentials or publish a Windows release.

Documentation

  • WINDOWS_PORT.md records the platform evaluation, implemented scope, limitations, and verification results.
  • docs/playbooks/windows-signed-release.md gives maintainers the steps for configuring signing, validating an unpublished release, publishing it, and enabling the download link.

Verification

Tested locally on Windows x64:

  • Built and installed the unsigned NSIS installer.
  • Launched the installed application.
  • Exercised the packaged background runtime and desktop connection.
  • Verified provider and terminal launch behavior.
  • Verified install and uninstall behavior.

Automated validation includes:

  • Desktop and ADE CLI typechecks, builds, lint, and tests.
  • All eight desktop test shards.
  • Windows release-contract tests.
  • Packaged runtime smoke tests.
  • Unsigned Windows installer build and artifact upload.
  • Existing macOS and Linux runtime jobs.

The fork CI run passed every substantive application and packaging job, including both previously failing desktop shards and package-win. Its documentation check failed only because the fork does not contain upstream’s version tags; the same check passes in the tagged upstream repository.

CI evidence: https://github.com/nsxdavid/ADE/actions/runs/30696678844

Review guide

The main Windows-specific areas are:

  1. apps/ade-cli/src/serviceManager/ — background runtime installation and lifecycle.
  2. apps/desktop/src/main/services/pty/ and apps/desktop/src/shared/cliLaunch.ts — Windows process and provider execution.
  3. apps/desktop/scripts/ and apps/desktop/build/installer.nsh — packaging, validation, signing checks, and uninstall.
  4. .github/workflows/ — additive Windows CI and release jobs.
  5. WINDOWS_PORT.md and docs/playbooks/windows-signed-release.md — scope and maintainer handoff.

Production signing and publication remain maintainer-controlled.

@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown

@nsxdavid is attempting to deploy a commit to the arul28's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 248 files, which is 148 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9dc2e706-8844-412d-9654-88e57feae199

📥 Commits

Reviewing files that changed from the base of the PR and between f91e4ef and 24e47be.

⛔ Files ignored due to path filters (17)
  • AGENTS.md is excluded by !*.md
  • WINDOWS_PORT.md is excluded by !*.md
  • docs/ARCHITECTURE.md is excluded by !docs/**
  • docs/README.md is excluded by !docs/**
  • docs/development/windows-port-lane.md is excluded by !docs/**
  • docs/features/chat/composer-and-ui.md is excluded by !docs/**
  • docs/features/computer-use/README.md is excluded by !docs/**
  • docs/features/computer-use/app-control.md is excluded by !docs/**
  • docs/features/onboarding-and-settings/README.md is excluded by !docs/**
  • docs/features/onboarding-and-settings/desktop-auto-update.md is excluded by !docs/**
  • docs/features/remote-runtime/README.md is excluded by !docs/**
  • docs/features/sync-and-multi-device/README.md is excluded by !docs/**
  • docs/features/sync-and-multi-device/crdt-model.md is excluded by !docs/**
  • docs/features/terminals-and-sessions/README.md is excluded by !docs/**
  • docs/features/terminals-and-sessions/pty-and-sessions.md is excluded by !docs/**
  • docs/logging.md is excluded by !docs/**
  • docs/playbooks/windows-signed-release.md is excluded by !docs/**
📒 Files selected for processing (248)
  • .github/workflows/ci.yml
  • .github/workflows/prepare-release.yml
  • .github/workflows/release-core.yml
  • apps/ade-cli/README.md
  • apps/ade-cli/src/adeRpcServer.ts
  • apps/ade-cli/src/cli.test.ts
  • apps/ade-cli/src/cli.ts
  • apps/ade-cli/src/commands/brainUpdate.ts
  • apps/ade-cli/src/commands/deeplinks.ts
  • apps/ade-cli/src/headlessLinearServices.ts
  • apps/ade-cli/src/lib/clipboard.ts
  • apps/ade-cli/src/multiProjectRpcServer.ts
  • apps/ade-cli/src/serviceManager/common.test.ts
  • apps/ade-cli/src/serviceManager/common.ts
  • apps/ade-cli/src/serviceManager/index.ts
  • apps/ade-cli/src/serviceManager/installWindows.ts
  • apps/ade-cli/src/services/projects/machineLayout.test.ts
  • apps/ade-cli/src/services/projects/machineLayout.ts
  • apps/ade-cli/src/services/projects/projectRegistry.ts
  • apps/ade-cli/src/services/runtime/brainLoopWatchdog.test.ts
  • apps/ade-cli/src/services/runtime/brainLoopWatchdog.ts
  • apps/ade-cli/src/services/runtime/localIpcListenOptions.ts
  • apps/ade-cli/src/services/runtime/socketSpawnLock.ts
  • apps/ade-cli/src/services/sync/syncHostService.test.ts
  • apps/ade-cli/src/services/sync/syncHostService.ts
  • apps/ade-cli/src/services/sync/syncHostSingleton.test.ts
  • apps/ade-cli/src/services/sync/syncHostSingleton.ts
  • apps/ade-cli/src/services/sync/syncService.ts
  • apps/ade-cli/src/tuiClient/__tests__/connection.test.ts
  • apps/ade-cli/src/tuiClient/__tests__/deeplinkKeybind.test.ts
  • apps/ade-cli/src/tuiClient/__tests__/remoteBridge.test.ts
  • apps/ade-cli/src/tuiClient/__tests__/state.test.ts
  • apps/ade-cli/src/tuiClient/app.tsx
  • apps/ade-cli/src/tuiClient/connection.ts
  • apps/ade-cli/src/tuiClient/pairedRemoteConnector.ts
  • apps/ade-cli/src/tuiClient/remoteBridge.ts
  • apps/ade-cli/src/tuiClient/remoteLauncher.ts
  • apps/desktop/build/installer.nsh
  • apps/desktop/package.json
  • apps/desktop/scripts/ade-cli-install-path.cmd
  • apps/desktop/scripts/after-pack-runtime-fixes.cjs
  • apps/desktop/scripts/dev.cjs
  • apps/desktop/scripts/run-electron-builder.mjs
  • apps/desktop/scripts/run-windows-test-build.mjs
  • apps/desktop/scripts/validate-runtime-resources.mjs
  • apps/desktop/scripts/validate-whisper-resources.mjs
  • apps/desktop/scripts/validate-win-artifacts.mjs
  • apps/desktop/scripts/windows-authenticode.mjs
  • apps/desktop/scripts/windows-authenticode.test.mjs
  • apps/desktop/scripts/windows-release-contract.test.mjs
  • apps/desktop/scripts/windows-uninstall-cleanup.ps1
  • apps/desktop/scripts/windows-uninstall-cleanup.test.mjs
  • apps/desktop/src/main/main.ts
  • apps/desktop/src/main/packagedRuntimeSmoke.test.ts
  • apps/desktop/src/main/packagedRuntimeSmoke.ts
  • apps/desktop/src/main/packagedRuntimeSmokeShared.ts
  • apps/desktop/src/main/services/ai/cliExecutableResolver.ts
  • apps/desktop/src/main/services/ai/providerCredentialSources.ts
  • apps/desktop/src/main/services/ai/providerTaskRunner.ts
  • apps/desktop/src/main/services/ai/tools/ctoOperatorTools.ts
  • apps/desktop/src/main/services/ai/tools/universalTools.ts
  • apps/desktop/src/main/services/ai/utils.ts
  • apps/desktop/src/main/services/appControl/appControlLaunchCommand.test.ts
  • apps/desktop/src/main/services/appControl/appControlLaunchCommand.ts
  • apps/desktop/src/main/services/appControl/appControlService.test.ts
  • apps/desktop/src/main/services/appControl/appControlService.ts
  • apps/desktop/src/main/services/attention/attentionAccountCoordinator.test.ts
  • apps/desktop/src/main/services/attention/attentionAccountCoordinator.ts
  • apps/desktop/src/main/services/attention/attentionNotchHelper.ts
  • apps/desktop/src/main/services/automations/automationPlannerService.ts
  • apps/desktop/src/main/services/automations/automationService.ts
  • apps/desktop/src/main/services/builtInBrowser/desktopBridgeServer.ts
  • apps/desktop/src/main/services/chat/agentChatService.test.ts
  • apps/desktop/src/main/services/chat/agentChatService.ts
  • apps/desktop/src/main/services/chat/crossMachineForkTransport.ts
  • apps/desktop/src/main/services/chat/cursorSdkPool.ts
  • apps/desktop/src/main/services/chat/droidSdkPool.ts
  • apps/desktop/src/main/services/conflicts/conflictService.ts
  • apps/desktop/src/main/services/externalSessions/externalSessionsService.ts
  • apps/desktop/src/main/services/files/fileService.ts
  • apps/desktop/src/main/services/git/ghOpenPrLookup.ts
  • apps/desktop/src/main/services/git/git.ts
  • apps/desktop/src/main/services/ipc/registerIpc.ts
  • apps/desktop/src/main/services/lanes/laneEnvironmentService.ts
  • apps/desktop/src/main/services/localRuntime/localRuntimeConnectionPool.test.ts
  • apps/desktop/src/main/services/localRuntime/localRuntimeConnectionPool.ts
  • apps/desktop/src/main/services/prs/prService.ts
  • apps/desktop/src/main/services/pty/ptyService.test.ts
  • apps/desktop/src/main/services/pty/ptyService.ts
  • apps/desktop/src/main/services/pty/resourceUsageSampling.test.ts
  • apps/desktop/src/main/services/pty/resourceUsageSampling.ts
  • apps/desktop/src/main/services/pty/supervisedPtyHost.ts
  • apps/desktop/src/main/services/remoteRuntime/remoteBootstrap.ts
  • apps/desktop/src/main/services/remoteRuntime/runtimeDiscovery.ts
  • apps/desktop/src/main/services/remoteRuntime/runtimeRpcClient.ts
  • apps/desktop/src/main/services/remoteRuntime/syncPairedMachineStore.test.ts
  • apps/desktop/src/main/services/remoteRuntime/syncPairedMachineStore.ts
  • apps/desktop/src/main/services/runtime/projectRecoveryService.ts
  • apps/desktop/src/main/services/shared/utils.ts
  • apps/desktop/src/main/services/storage/diskPressure.ts
  • apps/desktop/src/main/services/tests/testService.ts
  • apps/desktop/src/main/services/transcription/microphoneAccess.test.ts
  • apps/desktop/src/main/services/transcription/microphoneAccess.ts
  • apps/desktop/src/main/services/transcription/transcriptionService.ts
  • apps/desktop/src/main/services/updates/autoUpdateService.test.ts
  • apps/desktop/src/main/services/updates/autoUpdateService.ts
  • apps/desktop/src/main/services/updates/autoUpdateVersions.ts
  • apps/desktop/src/main/services/usage/usageTrackingService.ts
  • apps/desktop/src/main/windowAppearance.test.ts
  • apps/desktop/src/main/windowAppearance.ts
  • apps/desktop/src/preload/preload.test.ts
  • apps/desktop/src/renderer/components/account/AccountPage.test.tsx
  • apps/desktop/src/renderer/components/account/AccountPage.tsx
  • apps/desktop/src/renderer/components/app/App.workKeepAlive.test.tsx
  • apps/desktop/src/renderer/components/app/CommandPalette.tsx
  • apps/desktop/src/renderer/components/app/ConnectionsPanel.tsx
  • apps/desktop/src/renderer/components/app/ProjectRecoveryScreen.tsx
  • apps/desktop/src/renderer/components/app/ProjectTransitionErrorAlert.test.tsx
  • apps/desktop/src/renderer/components/app/StoragePressureIndicator.test.tsx
  • apps/desktop/src/renderer/components/app/StoragePressureIndicator.tsx
  • apps/desktop/src/renderer/components/app/TopBar.test.tsx
  • apps/desktop/src/renderer/components/app/TopBar.tsx
  • apps/desktop/src/renderer/components/attention/AttentionCenter.test.tsx
  • apps/desktop/src/renderer/components/attention/AttentionSettingsPopover.tsx
  • apps/desktop/src/renderer/components/attention/AttentionSettingsPopover.windows.test.tsx
  • apps/desktop/src/renderer/components/attention/HeaderAttentionControl.test.tsx
  • apps/desktop/src/renderer/components/chat/AgentChatComposer.test.tsx
  • apps/desktop/src/renderer/components/chat/AgentChatPane.test.tsx
  • apps/desktop/src/renderer/components/chat/AgentChatPane.tsx
  • apps/desktop/src/renderer/components/chat/AgentCliAuthCard.test.tsx
  • apps/desktop/src/renderer/components/chat/AgentCliAuthCard.tsx
  • apps/desktop/src/renderer/components/chat/ChatContinuityRecoveryCard.test.tsx
  • apps/desktop/src/renderer/components/chat/ChatContinuityRecoveryCard.tsx
  • apps/desktop/src/renderer/components/chat/ChatIosSimulatorPanel.tsx
  • apps/desktop/src/renderer/components/chat/VoiceDictationButton.tsx
  • apps/desktop/src/renderer/components/chat/microphonePermissionGuidance.test.ts
  • apps/desktop/src/renderer/components/chat/microphonePermissionGuidance.ts
  • apps/desktop/src/renderer/components/chat/thisMachineProjectRoot.ts
  • apps/desktop/src/renderer/components/cto/CtoPage.tsx
  • apps/desktop/src/renderer/components/cto/ctoUi.test.tsx
  • apps/desktop/src/renderer/components/files/v2/EditorGroup.test.tsx
  • apps/desktop/src/renderer/components/files/v2/EditorGroup.tsx
  • apps/desktop/src/renderer/components/files/v2/FilesWorkbench.tsx
  • apps/desktop/src/renderer/components/files/v2/viewers/MediaViewer.tsx
  • apps/desktop/src/renderer/components/lanes/CreateLaneDialog.test.tsx
  • apps/desktop/src/renderer/components/lanes/CreateLaneDialogHostBinding.test.tsx
  • apps/desktop/src/renderer/components/lanes/LaneGitActionsPane.tsx
  • apps/desktop/src/renderer/components/lanes/LaneMachineSelector.test.tsx
  • apps/desktop/src/renderer/components/lanes/LaneMachineSelector.tsx
  • apps/desktop/src/renderer/components/lanes/PushDivergenceGuard.test.tsx
  • apps/desktop/src/renderer/components/lanes/laneMachines.test.ts
  • apps/desktop/src/renderer/components/lanes/laneMachines.ts
  • apps/desktop/src/renderer/components/lanes/useLaneWorkSessions.ts
  • apps/desktop/src/renderer/components/onboarding/LaunchGate.test.tsx
  • apps/desktop/src/renderer/components/personalChats/PersonalChatsPage.test.tsx
  • apps/desktop/src/renderer/components/personalChats/PersonalChatsPage.tsx
  • apps/desktop/src/renderer/components/personalChats/ProjectlessSidebar.test.tsx
  • apps/desktop/src/renderer/components/prs/shared/PrMarkdownEditor.tsx
  • apps/desktop/src/renderer/components/remoteTargets/AccountMachineRow.tsx
  • apps/desktop/src/renderer/components/remoteTargets/PairMachineForm.tsx
  • apps/desktop/src/renderer/components/remoteTargets/RemoteTargetForm.tsx
  • apps/desktop/src/renderer/components/remoteTargets/RemoteTargetList.test.tsx
  • apps/desktop/src/renderer/components/remoteTargets/RemoteTargetList.tsx
  • apps/desktop/src/renderer/components/remoteTargets/SavedMachineRow.tsx
  • apps/desktop/src/renderer/components/remoteTargets/remoteMachineModel.ts
  • apps/desktop/src/renderer/components/settings/SecretsSection.tsx
  • apps/desktop/src/renderer/components/settings/StorageSection.tsx
  • apps/desktop/src/renderer/components/settings/SyncDevicesSection.test.tsx
  • apps/desktop/src/renderer/components/settings/SyncDevicesSection.tsx
  • apps/desktop/src/renderer/components/settings/accountDirectorySummary.ts
  • apps/desktop/src/renderer/components/settings/storage/StorageDiagnostics.tsx
  • apps/desktop/src/renderer/components/settings/useSyncConnections.ts
  • apps/desktop/src/renderer/components/terminals/LaneCombobox.tsx
  • apps/desktop/src/renderer/components/terminals/SessionCard.test.tsx
  • apps/desktop/src/renderer/components/terminals/TerminalsPage.test.tsx
  • apps/desktop/src/renderer/components/terminals/WorkSidebar.test.tsx
  • apps/desktop/src/renderer/components/terminals/WorkSidebar.tsx
  • apps/desktop/src/renderer/components/terminals/cliLaunch.test.ts
  • apps/desktop/src/renderer/components/terminals/cliLaunch.ts
  • apps/desktop/src/renderer/components/terminals/laneComboboxMachineGroups.test.tsx
  • apps/desktop/src/renderer/components/terminals/useWorkSessions.test.ts
  • apps/desktop/src/renderer/components/terminals/useWorkSessions.ts
  • apps/desktop/src/renderer/index.css
  • apps/desktop/src/renderer/lib/platform.test.ts
  • apps/desktop/src/renderer/lib/platform.ts
  • apps/desktop/src/renderer/main.tsx
  • apps/desktop/src/renderer/state/appStore.test.ts
  • apps/desktop/src/renderer/state/appStore.ts
  • apps/desktop/src/renderer/state/crossMachineLanes.test.ts
  • apps/desktop/src/renderer/state/crossMachineLanes.ts
  • apps/desktop/src/renderer/webclient/adapter/__tests__/connectionsPane.test.tsx
  • apps/desktop/src/renderer/webclient/adapter/sessionLifecycleSupport.ts
  • apps/desktop/src/renderer/webclient/shell/shellTokens.ts
  • apps/desktop/src/renderer/webclient/sync/__tests__/sync.test.ts
  • apps/desktop/src/renderer/webclient/sync/client.ts
  • apps/desktop/src/renderer/webclient/sync/connection.ts
  • apps/desktop/src/renderer/webclient/sync/wireProtocol.ts
  • apps/desktop/src/shared/cliLaunch.ts
  • apps/desktop/src/shared/laneDivergence.test.ts
  • apps/desktop/src/shared/laneDivergence.ts
  • apps/desktop/src/shared/machineIdentity.ts
  • apps/desktop/src/shared/types/account.ts
  • apps/desktop/src/shared/types/attention.ts
  • apps/desktop/src/shared/types/core.ts
  • apps/desktop/src/shared/types/sessions.ts
  • apps/desktop/src/shared/types/sync.ts
  • apps/desktop/tsup.config.ts
  • apps/ios/ADE/App/ContentView.swift
  • apps/ios/ADE/App/DeepLinkRouter.swift
  • apps/ios/ADE/Services/SSHBootstrapModels.swift
  • apps/ios/ADE/Services/SSHBootstrapService.swift
  • apps/ios/ADE/Services/SyncRecoveryPolicy.swift
  • apps/ios/ADE/Services/SyncService.swift
  • apps/ios/ADE/Services/SyncTerminalInputQueue.swift
  • apps/ios/ADE/Shared/AttentionActionIntents.swift
  • apps/ios/ADE/Views/Account/AccountConnectionsSection.swift
  • apps/ios/ADE/Views/Account/MobileAccessGateView.swift
  • apps/ios/ADE/Views/AttentionDrawer/AttentionDrawerModel.swift
  • apps/ios/ADE/Views/Components/MachineRowView.swift
  • apps/ios/ADE/Views/Deeplinks/SendToMacCard.swift
  • apps/ios/ADE/Views/Hub/HubQuickConnect.swift
  • apps/ios/ADE/Views/Linear/LinearConnectionScreen.swift
  • apps/ios/ADE/Views/Linear/LinearPaneSheet.swift
  • apps/ios/ADE/Views/PRs/PrDetailScreen.swift
  • apps/ios/ADE/Views/Settings/ConnectionSettingsView.swift
  • apps/ios/ADE/Views/Settings/SSHPairingView.swift
  • apps/ios/ADE/Views/Settings/SettingsPairingSection.swift
  • apps/ios/ADE/Views/Settings/SettingsPinSheet.swift
  • apps/ios/ADE/Views/Settings/SettingsPushDeliverySection.swift
  • apps/ios/ADE/Views/Settings/SettingsSupportTypes.swift
  • apps/ios/ADEClip/ClipPairingClient.swift
  • apps/ios/ADEClip/ClipPairingView.swift
  • apps/ios/ADEClip/Info.plist
  • apps/ios/ADETests/ADETests.swift
  • apps/ios/ADETests/PairingAndDpopTests.swift
  • apps/ios/ADETests/SyncRecoveryPolicyTests.swift
  • apps/ios/ADEWidgets/ADELockScreenWidget.swift
  • apps/web/public/pair/index.html
  • apps/web/src/app/pages/DownloadPage.tsx
  • apps/web/src/app/pages/PairPage.tsx
  • apps/web/src/lib/marketingAnalytics.test.ts
  • apps/web/src/lib/marketingAnalytics.ts
  • scripts/dev-desktop.mjs
  • scripts/dev-runtime-stop.mjs
  • scripts/dev-shared.mjs
  • scripts/dev-shared.test.mjs
  • scripts/run-desktop-test-shards.mjs
  • scripts/validate-docs.mjs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nsxdavid
nsxdavid marked this pull request as ready for review August 1, 2026 11:31
@nsxdavid
nsxdavid requested a review from arul28 as a code owner August 1, 2026 11:31
@greptile-apps

greptile-apps Bot commented Aug 1, 2026

Copy link
Copy Markdown

Too many files changed for review. (265 files found, 250 file limit)

Bypass the limit by tagging @greptile-apps to review.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 24e47be41a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/ade-cli/src/cli.ts
Comment on lines +15541 to +15543
const currentExecutableIsAde =
execBaseName.toLowerCase() === executableName.toLowerCase()
|| /^ade(?: beta| alpha)?\.exe$/i.test(execBaseName);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor the requested Windows app name

When ade desktop open --app-name "ADE Beta" runs through the Stable packaged CLI, process.execPath is ADE.exe; this broad fallback classifies any ADE-channel executable as a match and returns it before checking the Beta install candidates. The command therefore opens Stable while reporting that it opened Beta. Only reuse execPath when its basename matches the requested executable, and continue searching for the requested channel otherwise.

Useful? React with 👍 / 👎.

| --- | --- |
| **CLI ↔ desktop IPC** | Windows named-pipe path next to the Unix socket model (`adeRuntimeIpc.*`). |
| **CLI ↔ desktop IPC** | Runtime and desktop-bridge named pipes are hashed from canonical `ADE_HOME`, channel/service identity, and current-user identity (SID when available). Stable/Beta/Alpha and separate Windows accounts do not share endpoints. Servers explicitly use intended-user-only Node pipe flags; effective second-account denial remains a clean-VM gate. |
| **Background brain** | `installWindows.ts` installs a per-user/channel `ONLOGON` Scheduled Task. A BOM-marked PowerShell launcher restores the full resolved brain env (`ELECTRON_RUN_AS_NODE`, `NODE_PATH`, ADE paths/channel/role), preserves CRT argv quoting, and runs hidden. Status reads `Get-ScheduledTask` objects, so it is locale-independent; install/uninstall removes the exact legacy `ADE Runtime` task and fails closed on cleanup errors. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Describe the Run-key service instead of a scheduled task

The implementation now registers HKCU\Software\Microsoft\Windows\CurrentVersion\Run and uses scheduled-task APIs only to remove legacy preview tasks, but this newly added operational table says the current brain is an ONLOGON Scheduled Task and later tells release testing to verify separate tasks. Maintainers following this document can inspect the wrong persistence mechanism and miss stale or broken registry startup entries; document the Run entry and supervisor/runtime PID record that are actually installed.

Useful? React with 👍 / 👎.

@arul28

arul28 commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Windows stack dashboard

Rebuilding #999 as stack #1011. Based on the Windows implementation by @nsxdavid in #999. Original and pre-cascade states are preserved under immutable snapshot refs; direct ports preserve David Whatley author metadata and derived work carries attribution.

Layer PR Submitted head State
Foundation/runtime/workflow #1006 ff3cf884 ready for review; current CI + CodeRabbit running; trusted System32 and platform-neutral host foundations green
CLI/shells/providers #1007 37dfcd6c ready for review; Droid recovery green; current CI running after lower-layer test repair
Desktop/auth/sync #1008 34cbcdde ready for review; DPAPI hardening green; App Control PowerShell/cmd/Git Bash parity finishing in worker
Packaging/updater #1009 763067fd ready for review; Windows artifact CI running; Windows SSH-host bootstrap in worker
Release/proof #1010 10c36ef4 ready for review; exact release integrity 32/32 green; current CI running

All five PRs are non-draft so CI and available review bots run in parallel. CodeRabbit reviews only main-based PRs by repository policy, so PRs #1007#1010 were also explicitly pinged together with Greptile. These are interim review heads, not ready-stacked bindings: each lower-layer import triggers snapshot → cascade rebase → resubmit → invalidated checks/proof rerun.

Current gates

  • No layer merges independently.
  • Public Windows release and website flags remain disabled.
  • External readiness still requires signing credentials, clean Windows 10/11 installed-product proof, real OAuth/cross-client proof, and two-version signed update proof.
  • Verified review gaps are fixed rather than waived; rebases invalidate upper-layer quality/test/ship bindings.
  • Final merge remains atomic only after all five exact heads are ready-stacked and PR Windows 5/5: release integration and full-system proof #1010 proof matches its current SHA.

arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Complete Windows-native shell, provider, lifecycle, RPC, desktop discovery, and deeplink behavior derived from the rebased #999 work.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Keep PR 1 independently buildable while preserving the cumulative #999 release configuration in its owning layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 added a commit that referenced this pull request Aug 2, 2026
Restore the cumulative #999 release repository contract at its packaging layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Add immutable signed-build promotion, machine-validated evidence and acceptance inventories, #999 provenance, and Windows release/support guidance.

Co-authored-by: David Whatley <nsxdavid@gmail.com>
Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Add immutable signed-build promotion, machine-validated evidence and acceptance inventories, #999 provenance, and Windows release/support guidance.

Co-authored-by: David Whatley <nsxdavid@gmail.com>
Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Complete Windows-native shell, provider, lifecycle, RPC, desktop discovery, and deeplink behavior derived from the rebased #999 work.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Keep PR 1 independently buildable while preserving the cumulative #999 release configuration in its owning layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 added a commit that referenced this pull request Aug 2, 2026
Restore the cumulative #999 release repository contract at its packaging layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Add immutable signed-build promotion, machine-validated evidence and acceptance inventories, #999 provenance, and Windows release/support guidance.

Co-authored-by: David Whatley <nsxdavid@gmail.com>
Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Keep PR 1 independently buildable while preserving the cumulative #999 release configuration in its owning layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 added a commit that referenced this pull request Aug 2, 2026
Restore the cumulative #999 release repository contract at its packaging layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Add immutable signed-build promotion, machine-validated evidence and acceptance inventories, #999 provenance, and Windows release/support guidance.

Co-authored-by: David Whatley <nsxdavid@gmail.com>
Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Complete Windows-native shell, provider, lifecycle, RPC, desktop discovery, and deeplink behavior derived from the rebased #999 work.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Keep PR 1 independently buildable while preserving the cumulative #999 release configuration in its owning layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 added a commit that referenced this pull request Aug 2, 2026
Restore the cumulative #999 release repository contract at its packaging layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Add immutable signed-build promotion, machine-validated evidence and acceptance inventories, #999 provenance, and Windows release/support guidance.

Co-authored-by: David Whatley <nsxdavid@gmail.com>
Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Keep PR 1 independently buildable while preserving the cumulative #999 release configuration in its owning layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 added a commit that referenced this pull request Aug 2, 2026
Restore the cumulative #999 release repository contract at its packaging layer.

Co-authored-by: David Whatley <nsxdavid@gmail.com>

Based-on: nsxdavid/ADE#999
arul28 pushed a commit that referenced this pull request Aug 2, 2026
arul28 added a commit that referenced this pull request Aug 2, 2026
Add immutable signed-build promotion, machine-validated evidence and acceptance inventories, #999 provenance, and Windows release/support guidance.

Co-authored-by: David Whatley <nsxdavid@gmail.com>
Based-on: nsxdavid/ADE#999
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants