Menu ▾ ▴

#2 v1.0: badge, themes, jump-to-chat, compact, menu-bar mode + signed/notarized releases

closed
nobody
None
2026-06-28
2026-06-27
Anonymous
No

Originally created by: kristofferR

Carrier v1.0.

Features

  • Unread badge on the Dock/taskbar (+ tray tooltip).
  • Force light/dark/system theme — drives the Facebook page and the native window chrome (incl. the macOS title bar).
  • Jump to conversation with Cmd/Ctrl+1–9.
  • Compact mode (Cmd/Ctrl+Shift+S) collapsing the info panel.
  • Menu-bar-only mode on macOS (hide the Dock icon); tray click toggles the window.

Menu/UX

  • View gains a Theme submenu + Toggle Compact Mode; removed Print and the whole History menu.
  • Tray left-click toggles focus/hide (no more redundant "Open Carrier").

Cleanup

  • Removed the now-dead custom commands and the ureq/base64/arboard/image deps; smarter, executable-blocking downloads.

Release

  • Bumped to 1.0.0. release.yml now produces stable asset names, notarizes + staples the .dmg, and auto-publishes once all builds upload (Apple signing/notarization secrets configured).

https://claude.ai/code/session_01Y3bggeShXAoDnXrjtM4kSU

Summary by CodeRabbit

  • New Features
  • Added compact mode, theme controls, unread badge syncing, and improved keyboard navigation.
  • Added more flexible download handling and clearer release/download links.
  • Improved menu-bar behavior, including faster hide/show toggling and theme switching from the app menu.

  • Bug Fixes

  • Made macOS release packages properly notarized and signed.
  • 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

  • Bumped the app to version 1.0.0.

Related

Tickets: #4
Tickets: #6
Tickets: #7

Discussion

  • Anonymous

    Anonymous - 2026-06-27

    Ticket changed by: kristofferR

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-06-27

    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.

     
  • Anonymous

    Anonymous - 2026-06-27

    Originally posted by: coderabbitai[bot]

    Review Change Stack

    [!CAUTION]

    Review failed

    The pull request is closed.

    ℹ️ 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 help to get the list of available commands.

     
  • Anonymous

    Anonymous - 2026-06-27

    Originally posted by: coderabbitai[bot]

    [!NOTE]
    Unit test generation is a public access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


    Generating unit tests... This may take up to 20 minutes.

     
  • Anonymous

    Anonymous - 2026-06-27

    Originally posted by: coderabbitai[bot]

    ✅ Created PR with unit tests: https://github.com/kristofferR/carrier/pull/3

     
  • Anonymous

    Anonymous - 2026-06-28

    Originally posted by: coderabbitai[bot]

    [!NOTE]
    Unit test generation is a public access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


    Generating unit tests... This may take up to 20 minutes.

     
  • Anonymous

    Anonymous - 2026-06-28

    Originally posted by: kristofferR

    @coderabbitai review

     
  • Anonymous

    Anonymous - 2026-06-28

    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.
     
  • Anonymous

    Anonymous - 2026-06-28

    Originally posted by: coderabbitai[bot]

    13 INTERNAL: Received RST_STREAM with code 2 (Internal server error)

     

Log in to post a comment.