Menu ▾ ▴

#325 fix: keep unread muted conversations muted

closed
nobody
None
2026-10-17
2026-10-16
Anonymous
No

Originally created by: kristofferR

Muted conversations still produced notification banners and Dock badge counts once they had a new unread message.

Messenger draws the same slashed-bell glyph on muted rows, but an unread row's dot pushes it from 16px to 38px off the row's right edge. The detector only accepted 8–24px, so it rejected the glyph on exactly the rows that matter. About a second later the mute cache treated the missing glyph as "unmuted", and the thread notified and badged again.

The trailing-gap bound is now 64px, covering both layouts. The glyph fingerprint and size checks are unchanged. The dev probe mirrors the same bound. Measured against a live unread muted row (hash 774a4a14, 16×16, aria-hidden, rightGap 38).

Ref [#323]

Summary by CodeRabbit

  • Bug Fixes
  • Improved muted conversation icon detection in read and unread rows, including rows with an unread indicator.

Related

Tickets: #323

Discussion

  • Anonymous

    Anonymous - 2026-10-17

    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-10-17

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review Summary

    This comment shows the latest Codex review activity on this pull request.

    Review Status Commit Review trigger
    📝 Code Review ✅ Completed <relative-time datetime="2026-10-17T00:19:16.561007Z">2026-10-17T00:19:16.561007Z</relative-time> 8775de2 Manual request
    ℹ️ 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.
     
  • Anonymous

    Anonymous - 2026-10-17

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review: Didn't find any major issues. Swish!

    Reviewed commit: 597815ed2c

    ℹ️ 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".
     
  • Anonymous

    Anonymous - 2026-10-17

    Originally posted by: coderabbitai[bot]

    <picture>Review in Change Stack →</picture>

    📝 Walkthrough
    Muted-row icon detection now accepts a right-edge gap of up to 64px instead of 24px. The library and injected scripts use this limit. A test covers a shifted icon with a 38px gap and rejects one with a 120px gap. **Changes: Muted row icon detection** |Layer / File(s)|Summary| |:---|:---| |**Widen muted-row icon spacing limit**
    `inject/src/messenger/lib/mute.ts`, `inject/src/messenger/lib/mute.test.ts`, `src-tauri/inject/messenger.js`, `src-tauri/inject/mcp-bridge.js`|The muted-row icon checks now accept right gaps up to 64px. The test accepts a 38px gap and rejects a 120px gap. Comments describe the icon position in read and unread rows.| **Priority:** ➖ Normal **Estimated code review effort:** 2 (Simple) | ~8 minutes **Change:** Bug fix
    Merge Risk: ⚪ Minimal · up to 59781
    The production muted-row behavior has no identified merge-blocking risk. A separate test would help prevent regressions in the dev-only MCP bridge behavior.
    Pre-merge checks: <picture>Passed</picture> 3 · <picture>Failed</picture> 1 · <picture>Inconclusive</picture> 1
    <picture>Failed</picture> Failed checks: 1 warning · 1 inconclusive | Check name | Status | Explanation | Resolution | | :---------------- | :--------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Docstring Coverage | ![Warning](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-warning.svg) | Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 4 files. | Write docstrings for the functions missing them to satisfy the coverage threshold. | | Description check | ![Inconclusive](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-inconclusive.svg) | The description clearly explains the problem, root cause, implementation, validation, and related issue. It does not include the template's AI models section, which is required for contributors other … | Confirm whether the author is the repository owner. If not, add the AI models used, or write None. If AI was used, also add the reasoning-level information when available. |
    <picture>Passed</picture> Passed checks: 3 passed
    | Check name | Status | Explanation | | :------------------------ | :--------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------- | | Title check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | The title clearly identifies the primary fix: keeping unread muted conversations muted. | | Linked Issues check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | Check skipped because no linked issues were found for this pull request. | | Out of Scope Changes check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | Check skipped because no linked issues were found for this pull request. |
    Full details: Description check
    **Explanation** The description clearly explains the problem, root cause, implementation, validation, and related issue. It does not include the template's AI models section, which is required for contributors other than the repository owner. **Resolution** Confirm whether the author is the repository owner. If not, add the AI models used, or write None. If AI was used, also add the reasoning-level information when available.
    • [ ] Fix all pre-merge checks with AI
    ✨ Finishing Touches: 💡 2
    📝 Generate docstrings: 💡
    - [ ] Commit to this branch - [ ] Create a new PR
    🛠️ Fix failing CI checks: 💡
    - [ ] Commit to this branch - [ ] Create a new PR
    🧪 Generate unit tests (beta)
    - [ ] Commit to this branch - [ ] Create a new PR
    • [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

    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.

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

     
  • Anonymous

    Anonymous - 2026-10-17

    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

     
  • Anonymous

    Anonymous - 2026-10-17

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review: Didn't find any major issues. 🚀

    Reviewed commit: 8775de2ce3

    ℹ️ 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".
     
  • Anonymous

    Anonymous - 2026-10-17

    Ticket changed by: kristofferR

    • status: open --> closed
     

Log in to post a comment.