Skip to content

Correct sync colour transitions and simplify Busy navigation - #25

Merged
mrinc merged 3 commits into
masterfrom
fix/sync-status-colours
Sep 13, 2026
Merged

mrinc merged 3 commits into
masterfrom
fix/sync-status-colours

Conversation

@bcbetterninja

@bcbetterninja bcbetterninja commented Sep 13, 2026 •

Copy link
Copy Markdown
Collaborator

The sync icon previously derived red from lifetime action failure counts and repeated workspace errors, so ordinary syncing could look stuck. Track completed sync outcomes instead, and present Busy as a normal folder row with a right-aligned count.

  • Normal sync uses the theme's text colour (white in dark mode, readable dark text in light mode); queued Busy work uses the info/accent colour. A first failed outcome is orange.
  • Keep orange through the next attempt. Escalate to red only when the same failed Busy item remains at the end of another sync. Red stays latched while Busy is nonempty, and clears only when a completed sync empties it.
  • Busy navigation retains the last completed outcome during the next run, without a pill badge. Workspace-only failures warn in orange and do not accumulate into red. Starting a new normal sync resets previous transient warnings.

Validation: Release build with zero warnings/errors; 527 tests pass. State-transition coverage includes high historical counts, orange retry, red persistence, completed empty-queue reset, and workspace warnings. Native Xvfb checks assert actual orange/red brushes on both controls in light/dark mode. Screenshots contain fictional data only.

Normal Busy row, dark mode
First failed outcome, dark mode
Still stuck after another sync, light mode

On the first persisted Busy load, failed actions seed orange and failed-ID history; paused actions and unconfirmed sends seed red. Restart cannot present these as ordinary pending work. Initialization runs once so later refreshes cannot resurrect resolved attention state. Regression tests cover each startup case, next-run escalation and reset after an empty completed sync.

Busy severity is separate from aggregate sync warnings: mailbox/workspace failures do not colour clean newly queued Busy actions. Regression tests cover failures both before and after clean work is queued, Busy escalation, and independent clearing of the Busy state.

@coderabbitai

coderabbitai Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 9d398099-503b-4b8f-9bad-55df7eeb88d6


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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 60dd1e4cee

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/BetterMail.App/MainWindowViewModel.MessageActions.cs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0526ba84e1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/BetterMail.App/MainWindowViewModel.MessageActions.cs Outdated
@mrinc
mrinc merged commit 894211c into master Sep 13, 2026
9 checks passed
@mrinc
mrinc deleted the fix/sync-status-colours branch September 13, 2026 22:00
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