Skip to content

feat(windows): update CodeNomad from the in-app notification#597

Merged
shantur merged 3 commits into
NeuralNomadsAI:devfrom
pascalandr:feat/tauri-winget-updater
Jul 17, 2026
Merged

feat(windows): update CodeNomad from the in-app notification#597
shantur merged 3 commits into
NeuralNomadsAI:devfrom
pascalandr:feat/tauri-winget-updater

Conversation

@pascalandr

@pascalandr pascalandr commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • launch the official CodeNomad WinGet upgrade from the upgrade-required notification in the local Windows Tauri client
  • keep non-Windows, Electron and development release actions on their existing release links
  • wait for WinGet without blocking the async runtime and propagate launch or non-zero exit failures back to the UI
  • open the official release URL when the native update action fails
  • preserve the same explicit update action in the live toast and notification history

Update behavior

  • run an exact silent upgrade for the NeuralNomadsAI.CodeNomad package from the WinGet source
  • do not force a reinstall or downgrade
  • do not attempt to restart CodeNomad after a successful update; the installer owns application shutdown and replacement

Validation

  • npm run typecheck in packages/ui
  • npm run build in packages/ui
  • cargo test in packages/tauri-app/src-tauri (20 tests)

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29358771230

Artifacts expire in 7 days.
Artifacts:

  • pr-597-93c77c037e9639438d170bdc6974d27dcecba8e7-tauri-windows
  • pr-597-93c77c037e9639438d170bdc6974d27dcecba8e7-electron-macos
  • pr-597-93c77c037e9639438d170bdc6974d27dcecba8e7-tauri-linux
  • pr-597-93c77c037e9639438d170bdc6974d27dcecba8e7-tauri-macos-arm64
  • pr-597-93c77c037e9639438d170bdc6974d27dcecba8e7-electron-linux
  • pr-597-93c77c037e9639438d170bdc6974d27dcecba8e7-electron-windows

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29360223248

Artifacts expire in 7 days.
Artifacts:

  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-electron-macos
  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-tauri-windows
  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-tauri-macos
  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-tauri-macos-arm64
  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-tauri-linux
  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-electron-linux
  • pr-597-fa30a5c2f490dbaa99ff2d779bcea98dc195e30d-electron-windows

@pascalandr
pascalandr force-pushed the feat/tauri-winget-updater branch from bc475e0 to 34ca646 Compare July 14, 2026 19:48
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29362803911

Artifacts expire in 7 days.
Artifacts:

  • pr-597-bc475e0ffba42c2a6bc22a0f15d5ea97b525e609-electron-windows

@pascalandr
pascalandr force-pushed the feat/tauri-winget-updater branch from 34ca646 to ba663e3 Compare July 14, 2026 19:51
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29363210154

Artifacts expire in 7 days.
Artifacts: (none found on this run)

@pascalandr

Copy link
Copy Markdown
Contributor Author

Independent subagent review

No blocking findings.

  • Medium: packages/ui/src/lib/notifications.tsx:385 and packages/ui/src/stores/releases.ts:66 discard rejected update invocations. The URL fallback is not used when WinGet is unavailable or fails to spawn, so the button can appear inert.
  • Medium: packages/tauri-app/src-tauri/src/windows_update.rs:24-28 confirms only that WinGet started; its exit status and later installation failures are intentionally not surfaced to the UI.
  • Low: The notification-history action keeps opening the release URL rather than replaying the native WinGet action.

Residual gap: no automated tests cover Windows detection, WinGet argument construction, invocation failure, or live-toast versus history behavior. UI typecheck and Rust checks pass.

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29363429383

Artifacts expire in 7 days.
Artifacts:

  • pr-597-ba663e3fdeb9f342abe61857609687248f188775-tauri-windows
  • pr-597-ba663e3fdeb9f342abe61857609687248f188775-electron-macos
  • pr-597-ba663e3fdeb9f342abe61857609687248f188775-tauri-macos-arm64
  • pr-597-ba663e3fdeb9f342abe61857609687248f188775-tauri-linux
  • pr-597-ba663e3fdeb9f342abe61857609687248f188775-electron-linux
  • pr-597-ba663e3fdeb9f342abe61857609687248f188775-electron-windows

@pascalandr pascalandr changed the title feat(tauri): install stable Windows updates through WinGet feat(windows): update CodeNomad from the in-app notification Jul 14, 2026
@pascalandr

Copy link
Copy Markdown
Contributor Author

@shantur LGTM

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29365404916

Artifacts expire in 7 days.
Artifacts:

  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-windows
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos-arm64
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-windows

3 similar comments
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29365404916

Artifacts expire in 7 days.
Artifacts:

  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-windows
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos-arm64
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-windows

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29365404916

Artifacts expire in 7 days.
Artifacts:

  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-windows
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos-arm64
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-windows

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29365404916

Artifacts expire in 7 days.
Artifacts:

  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-windows
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-linux
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-tauri-macos-arm64
  • pr-597-09e75827df773a436d5e7377e07ddccce70e00d2-electron-windows

Replace the official release notification link with a native WinGet upgrade on local Tauri Windows sessions. Other hosts and platforms continue opening the existing release URL.

Run WinGet silently without a console window and let the NSIS installer close the application. Validated with Cargo check, the UI TypeScript check, and a live upgrade from CodeNomad 0.17.0 to 0.18.0.
Wait for WinGet while CodeNomad remains active so launch and non-zero exit failures propagate back to the UI without blocking the async runtime.

Use one notification action path for live toasts and history entries, opening the release URL whenever the native update action rejects. Successful installs remain owned by WinGet and do not attempt an in-process restart.

Validated with the UI typecheck and build plus the Rust test suite.
Keep history-row activation limited to marking the notification as read. Actionable operations such as WinGet updates now run only from the dedicated action button, preventing accidental installs when users select a notification.

Validated with the UI TypeScript check and production build.
@pascalandr
pascalandr force-pushed the feat/tauri-winget-updater branch from 09e7582 to 6a493a5 Compare July 15, 2026 20:45
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29449487437

Artifacts expire in 7 days.
Artifacts:

  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-tauri-macos
  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-tauri-windows
  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-electron-macos
  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-tauri-macos-arm64
  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-tauri-linux
  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-electron-linux
  • pr-597-6a493a51a82c27bffd786f0e954cdc84dd6d1a6e-electron-windows

@shantur
shantur merged commit e586ea3 into NeuralNomadsAI:dev Jul 17, 2026
11 checks passed
pascalandr added a commit to pascalandr/CodeNomad that referenced this pull request Jul 17, 2026
Route Help > Get Updates through the native WinGet updater on Windows now that PR NeuralNomadsAI#597 is merged. Run the command asynchronously so the Tauri menu event loop remains responsive.

Open the latest GitHub Releases page when WinGet cannot start, exits unsuccessfully, or cannot be monitored. macOS and Linux keep the existing direct releases-page behavior.

Add a focused regression test for the failed-update fallback. Validated with cargo check and all 65 Tauri tests.
shantur pushed a commit that referenced this pull request Jul 17, 2026
## Summary

- replace the inert Tauri macOS About handler with the native About
dialog
- add a conventional Help menu with About on Windows and Linux
- expose Get Updates through each platform menu and through native About
only where the platform supports an actionable link
- run the native WinGet updater from the Windows Help menu, with GitHub
Releases as the error fallback

## Platform behavior

- macOS: CodeNomad > About CodeNomad opens the native dialog; CodeNomad
> Get Updates... opens the latest GitHub release
- Windows: Help > About CodeNomad opens the native dialog; Help > Get
Updates... runs the WinGet updater asynchronously and opens the latest
GitHub release only if WinGet cannot start, fails, or cannot be
monitored
- Linux: Help > About CodeNomad opens the native dialog with an
actionable Get updates link; Help > Get Updates... also provides direct
access
- the displayed application version comes from Tauri package metadata

Tauri ignores website metadata in the native macOS About panel and
renders it as inert text on Windows, so website metadata is included
only on Linux.

## Windows updater integration

PR #597 is now merged. The Windows menu action invokes its
install_stable_update command without blocking the Tauri menu event
loop. macOS and Linux retain the direct Releases URL behavior.

## Validation

- cargo test --manifest-path packages/tauri-app/src-tauri/Cargo.toml: 65
passed
- cargo check --manifest-path packages/tauri-app/src-tauri/Cargo.toml:
passed
- focused failed-update fallback regression test
- git diff --check: passed

Closes #592
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