Add Windows desktop build and guarded release support - #999
Conversation
|
@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. |
|
Important Review skippedToo many files! This PR contains 248 files, which is 148 over the limit of 100. To get a review, narrow the scope: 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (17)
📒 Files selected for processing (248)
You can disable this status message by setting the 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. Comment |
|
Too many files changed for review. ( Bypass the limit by tagging |
There was a problem hiding this comment.
💡 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".
| const currentExecutableIsAde = | ||
| execBaseName.toLowerCase() === executableName.toLowerCase() | ||
| || /^ade(?: beta| alpha)?\.exe$/i.test(execBaseName); |
There was a problem hiding this comment.
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. | |
There was a problem hiding this comment.
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 👍 / 👎.
Windows stack dashboardRebuilding #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.
All five PRs are non-draft so CI and available review bots run in parallel. CodeRabbit reviews only Current gates
|
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
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
Restore the cumulative #999 release repository contract at its packaging layer. Co-authored-by: David Whatley <nsxdavid@gmail.com> Based-on: nsxdavid/ADE#999
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
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
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
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
Restore the cumulative #999 release repository contract at its packaging layer. Co-authored-by: David Whatley <nsxdavid@gmail.com> Based-on: nsxdavid/ADE#999
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
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
Restore the cumulative #999 release repository contract at its packaging layer. Co-authored-by: David Whatley <nsxdavid@gmail.com> Based-on: nsxdavid/ADE#999
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
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
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
Restore the cumulative #999 release repository contract at its packaging layer. Co-authored-by: David Whatley <nsxdavid@gmail.com> Based-on: nsxdavid/ADE#999
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
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
Restore the cumulative #999 release repository contract at its packaging layer. Co-authored-by: David Whatley <nsxdavid@gmail.com> Based-on: nsxdavid/ADE#999
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
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
%VARIABLE%text.Desktop application
Packaging and updates
crsqlite.dll.CI and release safety
Documentation
WINDOWS_PORT.mdrecords the platform evaluation, implemented scope, limitations, and verification results.docs/playbooks/windows-signed-release.mdgives maintainers the steps for configuring signing, validating an unpublished release, publishing it, and enabling the download link.Verification
Tested locally on Windows x64:
Automated validation includes:
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:
apps/ade-cli/src/serviceManager/— background runtime installation and lifecycle.apps/desktop/src/main/services/pty/andapps/desktop/src/shared/cliLaunch.ts— Windows process and provider execution.apps/desktop/scripts/andapps/desktop/build/installer.nsh— packaging, validation, signing checks, and uninstall..github/workflows/— additive Windows CI and release jobs.WINDOWS_PORT.mdanddocs/playbooks/windows-signed-release.md— scope and maintainer handoff.Production signing and publication remain maintainer-controlled.