v1.0: badge, themes, jump-to-chat, compact, menu-bar mode + signed/notarized...
Facebook Messenger on your desktop, without the Facebook clutter
Brought to you by:
kristoffer-r
Originally created by: kristofferR
Carrier v1.0.
Features
Menu/UX
Cleanup
Release
https://claude.ai/code/session_01Y3bggeShXAoDnXrjtM4kSU
Improved menu-bar behavior, including faster hide/show toggling and theme switching from the app menu.
Bug Fixes
Improved download safety by avoiding risky file types and using safer saved filenames.
Documentation
Expanded the README with updated features, install guidance, shortcuts, and update notes.
Chores
Ticket changed by: kristofferR
Originally posted by: chatgpt-codex-connector[bot]
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.
Originally posted by: coderabbitai[bot]
ℹ️ Recent review info
⚙️ Run configuration
**Configuration used**: Organization UI **Review profile**: ASSERTIVE **Plan**: Pro **Run ID**: `d7c6a788-9d32-4505-ad24-986450def10f`📥 Commits
Reviewing files that changed from the base of the PR and between [98dd8f] and 1f86318c374b65e0dc2617a046faa6368ef3f268.⛔ Files ignored due to path filters (3)
* `dist/settings.html` is excluded by `!**/dist/**` * `docs/icons/download.svg` is excluded by `!**/*.svg` * `src-tauri/Cargo.lock` is excluded by `!**/*.lock`📒 Files selected for processing (9)
* `.github/workflows/release.yml` * `README.md` * `package.json` * `src-tauri/Cargo.toml` * `src-tauri/capabilities/default.json` * `src-tauri/inject/messenger.css` * `src-tauri/inject/messenger.js` * `src-tauri/src/lib.rs` * `src-tauri/tauri.conf.json`📝 Walkthrough
## Walkthrough Carrier is bumped to version 1.0.0 across all manifests. The Rust backend gains new `Settings` fields (unread badge, theme, compact mode, menu-bar-only), theme/compact menus, a `mutate_settings` helper, hardened download security (`is_unsafe_download`), and a reduced Tauri command surface. The JS injection adds an `emit` bridge, conversation keyboard shortcuts, forced theme, unread badge mirroring, and compact mode toggling. The CI release workflow adds stable asset names, macOS DMG notarization, and a deferred publish job. ## Changes **App features and backend (1.0.0)** | Layer / File(s) | Summary | |---|---| | **Settings struct, defaults, and theme helpers**`src-tauri/src/lib.rs` | Expands `Settings` with `unread_badge`, `theme`, `compact`, and `menu_bar_only` fields; updates defaults; adds `theme_for`/`is_dark`/`splash_background` driven by settings rather than system detection. | | **Tray toggle, apply_settings, and menu-bar-only policy**
`src-tauri/src/lib.rs` | Adds `toggle_main`; rewrites `build_tray` to remove the Open item; wires left-click to toggle; `apply_settings` applies theme to windows, enables tray for `menu_bar_only`, and sets macOS activation policy. | | **Theme submenu, compact item, mutate\_settings, and menu event handling**
`src-tauri/src/lib.rs` | Adds Theme (System/Light/Dark) submenu and Toggle Compact Mode to the View menu; removes History submenu; introduces `mutate_settings`; extends `handle_menu_event` for theme/compact/`always_on_top`. | | **Download hardening and command surface reduction**
`src-tauri/src/lib.rs` | Removes `fetch_public`; adds `is_unsafe_download` to block executable extensions; reworks `on_download` to prefer suggested filename, sanitize, and save uniquely. Removes ~10 Tauri commands from `generate_handler`. | | **carrier:unread and carrier:toggle-compact event listeners**
`src-tauri/src/lib.rs`, `src-tauri/capabilities/default.json` | Registers setup listeners for `carrier:unread` (tray tooltip) and `carrier:toggle-compact` (persists and reapplies compact mode); adds `core:window:allow-set-badge-count` capability. | | **JS/CSS injection: emit, shortcuts, theme, badge, compact, download**
`src-tauri/inject/messenger.js`, `src-tauri/inject/messenger.css` | Adds `emit` helper; Ctrl+1–9 conversation jump and Ctrl+Shift+S compact toggle; reworks `downloadSrc` to blob-fetch with extension inference; adds Force theme, Unread badge, and Compact mode blocks. CSS hides sidebar under `data-carrier-compact`. | | **Version bumps and config cleanup**
`package.json`, `src-tauri/Cargo.toml`, `src-tauri/tauri.conf.json` | Updates version to 1.0.0 in all manifests; lowers MSRV to 1.82; removes unused deps (`arboard`, `ureq`, `base64`, `image`); reformats Linux bundle dependency arrays. | **CI Release Workflow** | Layer / File(s) | Summary | |---|---| | **Stable asset names, DMG notarization, and publish job**
`.github/workflows/release.yml` | Adds `ASSET_PLATFORM`/`ASSET_ARCH` env vars for stable filenames; sets `assetNamePattern`; adds macOS shell step to notarize+staple `.dmg` and re-upload under stable name; adds `publish` job that un-drafts the release after all builds finish. | **README** | Layer / File(s) | Summary | |---|---| | **README rewrite for 1.0.0**
`README.md` | Adds Download section with platform links and badges; expands Features list; adds Keyboard shortcuts section; rewrites Install, How it works, and Auto-updates text; removes Acknowledgements section. | ## Estimated code review effort 🎯 4 (Complex) | ⏱️ ~60 minutes ## Possibly related PRs - [[kristofferR/carrier#1](https://github.com/kristofferR/carrier/issues/1)](https://github.com/kristofferR/carrier/pull/1): Directly overlaps on `src-tauri/src/lib.rs` (settings/theme wiring, download logic) and `src-tauri/inject/messenger.js` (native command bridging, theme/shortcut handling, media download interception). ## Poem > 🐇 A badge on the dock, a theme forced just right, > Compact mode hides what's not needed in sight. > Press Cmd+3 to leap to a chat, > Downloads stay safe — no .exe after that! > The DMG is signed, the release goes live, > Version one-point-oh has finally arrived! 🎉
✨ Finishing Touches
📝 Generate docstrings
- [ ] Create stacked PR - [ ] Commit on current branch🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests - [ ] Commit unit tests in branch `feat/v1.0`Comment
@coderabbitai helpto get the list of available commands.Originally posted by: coderabbitai[bot]
Generating unit tests... This may take up to 20 minutes.
Originally posted by: coderabbitai[bot]
✅ Created PR with unit tests: https://github.com/kristofferR/carrier/pull/3
Originally posted by: coderabbitai[bot]
Generating unit tests... This may take up to 20 minutes.
Originally posted by: kristofferR
@coderabbitai review
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: coderabbitai[bot]
13 INTERNAL: Received RST_STREAM with code 2 (Internal server error)