Originally created by: kristofferR
Update the Bun and Cargo dependency sets and pinned GitHub Actions to their latest compatible stable versions. This includes Tauri 2.11.6, CLI 2.11.5, updater 2.12.0, the log/single-instance plugins, Node types, and transitive updates.
Backport muda's macOS use-after-free fix (upstream [#361]) onto 0.19.3. Updating only Carrier to 0.20 would split its Dock menu from Tauri's event backend and duplicate Objective-C classes. The vendored patch preserves one shared instance, documents provenance/removal, and adds a native ownership check to macOS CI. Ref [#287], superseded by this consolidated update.
Enable signed-version verification for updater artifacts and include the version when manually signing notarized DMGs. The existing Tauri webview-retain backport remains necessary and is preserved.
Validation:
Compatibility holds: GTK remains on the version shared by Tauri/WebKitGTK; fast-uri remains on AJV's supported v3 line. The MCP git revision, remaining direct dependencies/overrides, and remaining action pins are current. No prerelease upgrades.
Added cross-platform menu lifecycle validation to help prevent native menu issues.
Security
Updates now require signed artifacts before installation.
Release Improvements
Originally posted by: kristofferR
@coderabbitai review
Originally posted by: kristofferR
@codex review for consequential defects introduced by this PR; do not expand its original scope with unrelated refactors, features, or speculative hardening
Originally posted by: coderabbitai[bot]
✅ Action performed
Review finished. > Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.Originally posted by: chatgpt-codex-connector[bot]
Codex Review Summary
This comment shows the latest Codex review activity on this pull request.
dac2aeeℹ️ About Codex in GitHub
[Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review" or "@codex security review". Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.
Originally posted by: chatgpt-codex-connector[bot]
Codex Review: Didn't find any major issues. More of your lovely PRs please.
Reviewed commit:
dac2aee610ℹ️ About Codex in GitHub
[Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). 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".
Originally posted by: coderabbitai[bot]
Understand this PR’s impact
Explore downstream dependencies and potential security impact with Blast Radius.
View blast radius →
📝 Walkthrough
## Walkthrough This PR vendors the `muda` menu library into `src-tauri`, patches Cargo to use it, adds a macOS lifecycle validation example, updates CI to run that example, requires signed updater versions, and passes an explicit app version during release signing. ### Changes **Vendored muda integration** |Layer / File(s)|Summary| |---|---| |**Build, release, and app wiring**`.github/workflows/*`, `package.json`, `src-tauri/Cargo.toml`, `src-tauri/tauri.conf.json`|CI updates `cargo-audit`, runs `menu_lifecycle` on macOS, release signing now passes `--app-version` from the tag, `@tauri-apps/cli` is bumped, `tauri-plugin-updater` is pinned to `2.12`, Cargo now patches `muda` from `src-tauri/vendor/muda`, and the updater config sets `"requireSignedVersion": true`.| |**Vendored crate package and public API**
`src-tauri/vendor/muda/Cargo.toml`, `src-tauri/vendor/muda/LICENSE*`, `src-tauri/vendor/muda/README.md`, `src-tauri/vendor/muda/src/{about_metadata,accelerator,error,icon,lib,menu_id,platform_impl/mod,util}.rs`|The vendored `muda` crate adds package metadata, licenses, crate docs, shared error and utility types, accelerator parsing, icon types, about-dialog metadata, `MenuId`, `MenuEvent`, `ContextMenu`, `MenuItemKind`, and platform selection for Windows, macOS, and GTK targets.| |**Menu items, builders, and top-level menu API**
`src-tauri/vendor/muda/src/builders/*`, `src-tauri/vendor/muda/src/items/*`, `src-tauri/vendor/muda/src/menu.rs`|The crate now exposes builders for normal, check, icon, and submenu items; public `MenuItem`, `CheckMenuItem`, `IconMenuItem`, `PredefinedMenuItem`, and `Submenu` types; and the top-level `Menu` wrapper with item management and platform-gated window integration methods.| |**GTK backend**
`src-tauri/vendor/muda/src/platform_impl/gtk/*`|The GTK backend adds menu and submenu storage, accelerator registration, icon rendering, predefined item handling, context-menu display, menu-bar window lifecycle, check-item synchronization, and `MenuEvent` dispatch for GTK widgets.| |**macOS backend and lifecycle validation**
`src-tauri/vendor/muda/src/platform_impl/macos/*`, `src-tauri/examples/menu_lifecycle.rs`, `src-tauri/vendor/README.md`|The macOS backend adds native menu integration, accelerator and icon helpers, native menu item lifecycle management, event dispatch, and context-menu support. The new `menu_lifecycle` example validates event delivery after Rust handles are dropped and checks native item release after the retained handle is dropped. The vendor README documents the backported ownership fix and the example.| |**Windows backend**
`src-tauri/vendor/muda/src/platform_impl/windows/*`|The Windows backend adds Win32 menu and submenu integration, accelerator tables, icon conversion, dark menu-bar drawing, DPI helpers, predefined actions, about-dialog handling, subclass dispatch, and `MenuEvent` routing for menu commands.| **Priority:** ⬇️ Low **Estimated code review effort:** 5 (Critical) | ~120 minutes **Change:** Other ### Sequence Diagram(s) :::mermaid sequenceDiagram participant User participant NativeMenu as Native menu backend participant Muda as muda Menu/MenuChild participant App as Carrier app User->>NativeMenu: select menu item NativeMenu->>Muda: resolve item and update state Muda->>App: send MenuEvent(MenuId)
Merge Risk: 🔵 Low · up to
dac2aCorrect the vendored literals and GTK icon validation before merging; both issues are localized and straightforward to fix.
🚥 Pre-merge checks | ✅ 4 | ❌ 1
### ❌ Failed checks (1 warning) | Check name | Status | Explanation | Resolution | | :----------------: | :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- | | Docstring Coverage | ⚠️ Warning | Docstring coverage is 45.22% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 502 functions across 33 files. (11 skippe… | Write docstrings for the functions missing them to satisfy the coverage threshold. |✅ Passed checks (4 passed)
| Check name | Status | Explanation | | :------------------------: | :------- | :------------------------------------------------------------------------------------------------------- | | Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. | | Title check | ✅ Passed | The title clearly summarizes the primary changes: dependency updates and the backported menu safety fix. | | Linked Issues check | ✅ Passed | Check skipped because no linked issues were found for this pull request. | | Out of Scope Changes check | ✅ Passed | Check skipped because no linked issues were found for this pull request. |Full details: Docstring Coverage
**Explanation** Docstring coverage is 45.22% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 502 functions across 33 files. (11 skipped: 11 unsupported.)✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
- [ ] Commit to this branch - [ ] Create a new PR🧪 Generate unit tests (beta)
- [ ] Commit to this branch - [ ] Create a new PRThanks 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
- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)Comment
@coderabbitai helpto get the list of available commands.Ticket changed by: kristofferR