Skip to content

Fix Linux window headers and delay update notifications - #528

Merged
DirkDoes merged 1 commit into
mainfrom
fix/linux-ui-and-headed
Oct 12, 2026
Merged

DirkDoes merged 1 commit into
mainfrom
fix/linux-ui-and-headed

Conversation

@DirkDoes

@DirkDoes DirkDoes commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Purpose of this PR:

Linux's drawn window decorations can offset caption buttons from Wheel Wizard's custom header. Update notifications can also arrive before Linux packages have caught up with a GitHub release. Align the Linux header and give every Linux installation a 24-hour grace period before announcing updates.

How to Test:

Automated checks passed:

  • 33 updater and service registration tests in the normal build configuration.
  • 30 updater tests with LINUX defined.
  • 26 headless window and application composition tests.

On Linux, check header alignment on X11 and Wayland. Confirm that a release younger than 24 hours shows neither an update badge nor a popup, and that an eligible release can be announced after the cutoff. Native Linux visual verification remains outstanding; the delay does not guarantee package availability.

What Has Been Changed:

  • Remove the build-target OS label from settings.
  • Remove Linux decoration frame and shadow insets so caption buttons align with the custom header.
  • Apply the 24-hour delay using the runtime OS, including official Linux downloads and packaged installations.
  • Skip malformed release versions and withhold Linux notifications when the publication date is missing.
  • Keep Flatpak on manual updates and direct manual Linux updates through the package manager.

Related Issue Link:

N/A

Checklist before merging

  • You have created relevant tests

Summary by CodeRabbit

  • New Features
    • Linux update checks now offer releases only after they have been available for at least 24 hours.
    • Linux manual-update guidance directs users to their package manager and provides a link to release details.
  • Bug Fixes
    • Improved Linux title-bar spacing and caption-button fit.
    • Invalid release versions no longer interrupt update checks.
  • Style
    • Settings now identify the app version as “Dev” or “Release,” without displaying the build platform.

@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 25ea9eea-e527-4bcb-a87b-72199c20f697

📥 Commits

Reviewing files that changed from the base of the PR and between dc93c70 and 2d7c5bf.


📒 Files selected for processing (10)
  • WheelWizard.Test/Features/AutoUpdating/AutoUpdaterTests.cs
  • WheelWizard.Test/Features/AutoUpdating/UpdateRegistrationTests.cs
  • WheelWizard.UI.Test/ApplicationCompositionTests.cs
  • WheelWizard.UI.Test/WindowCompositionTests.cs
  • WheelWizard/Features/AutoUpdating/AutoUpdaterSingletonService.cs
  • WheelWizard/Features/AutoUpdating/AutoUpdatingExtensions.cs
  • WheelWizard/Features/AutoUpdating/Presentation/UpdatePresentation.cs
  • WheelWizard/Features/GitHub/Domain/GithubRelease.cs
  • WheelWizard/Features/Settings/Views/SettingsVersionInfo.axaml.cs
  • WheelWizard/Views/App.axaml

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.



📝 Walkthrough

Walkthrough

The changes enable Linux update-platform selection, filter Linux releases by publication time, and provide package-manager guidance for manual updates. They also adjust Linux window decorations and simplify the settings version label.

Changes

Linux update behavior

Layer / File(s) Summary
Release metadata and eligibility
WheelWizard/Features/GitHub/Domain/GithubRelease.cs, WheelWizard/Features/AutoUpdating/AutoUpdaterSingletonService.cs, WheelWizard.Test/Features/AutoUpdating/AutoUpdaterTests.cs, WheelWizard.Test/Features/AutoUpdating/UpdateRegistrationTests.cs
GitHub releases now include a publication timestamp. The updater skips invalid tags and Linux releases without a timestamp or published less than one day earlier. Tests cover release selection and timing boundaries.
Update platform registration
WheelWizard/Features/AutoUpdating/AutoUpdatingExtensions.cs, WheelWizard.Test/Features/AutoUpdating/UpdateRegistrationTests.cs
Linux builds select LinuxUpdatePlatform. Flatpak selects FallbackUpdatePlatform, which the test checks has automatic updates disabled.
Manual-update guidance
WheelWizard/Features/AutoUpdating/Presentation/UpdatePresentation.cs, WheelWizard.UI.Test/WindowCompositionTests.cs
Linux manual-update messages direct users to their package manager and retain the GitHub releases link. The UI test checks the message and link.

Linux window layout

Layer / File(s) Summary
Caption-button layout
WheelWizard/Views/App.axaml, WheelWizard.UI.Test/WindowCompositionTests.cs
Linux window decorations change frame, shadow, and margin settings, and no longer override the maximized restore-button path. Tests check caption-button placement and dimensions.

Version label

Layer / File(s) Summary
Settings release text
WheelWizard/Features/Settings/Views/SettingsVersionInfo.axaml.cs, WheelWizard.UI.Test/ApplicationCompositionTests.cs
The settings version label now shows only Dev or Release. The composition test checks the control and label text.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Suggested reviewers: patchzyy


Merge Risk: ⚪ Minimal · up to 2d7c5

The change adjusts Linux window headers and delays Linux update notifications by 24 hours. No concrete merge-blocking risk was found. Visual checks on X11 and Wayland are still outstanding.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 21 functions across 9 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly summarizes the two main changes: Linux window header alignment and delayed update notifications.
Description check Passed The description includes all required template sections, explains the purpose and changes, documents testing, identifies outstanding Linux visual verification, and completes the checklist.
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 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 21 functions across 9 files. (1 skipped: 1 unsupported.)


  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • 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

A rabbit checks the release date,
Then waits one day beside the gate.
The Linux buttons settle right,
The version text stays short and bright.
I twitch my ears: the tests all pass!

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

@DirkDoes
DirkDoes merged commit 96b50af into main Oct 12, 2026
3 checks passed
@DirkDoes
DirkDoes deleted the fix/linux-ui-and-headed branch October 12, 2026 17:54
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.

1 participant