Skip to content

fix(windows): avoid white startup flash after installing Taskly - #26

Merged
turinglambdaai merged 6 commits into
mainfrom
fix/windows-startup-theme-flash
Oct 21, 2026
Merged

turinglambdaai merged 6 commits into
mainfrom
fix/windows-startup-theme-flash

Conversation

@turinglambdaai

Copy link
Copy Markdown
Owner

Problem

The MSI finish page offers Launch Taskly. On selecting it, the WinUI 3 window can appear in the default system-light/English presentation before the Racket backend has started and returned persisted preferences. This produces a jarring white flash for users who configured Taskly's dark theme, especially noticeable immediately after installation. The root Grid also lacks an explicit theme-aware background, leaving transparent areas to the window's default fill.

Changes

  • Read only language and theme from ~/.taskly/config.ini before Window.Activate(), respecting the Windows USERPROFILE → HOME precedence, comments, whitespace, case-insensitive keys, last-key-wins and documented fallbacks.
  • Apply the initial language and theme as the window is constructed. The existing asynchronous get_settings RPC remains authoritative and still refreshes the UI after backend startup.
  • Give RootGrid a ThemeResource TasklySurfaceBrush background so the full client area paints consistently in dark and light mode.
  • Update product/data-format contracts for the startup appearance behavior.

Verification

  • Changes isolated to Windows host and documentation; no generated Rivet clients, MSI tooling, or Racket contracts modified.
  • GitHub branch diff reviewed against main.
  • Windows CI build (expected to run on this PR).
  • Manual Windows 10/11 QA:
    1. Set theme Dark while OS is Light, quit and relaunch Taskly from the MSI Launch Taskly checkbox; confirm no white/English first frame.
    2. Repeat with light/system themes and both language settings; check title bar and content agree.
    3. Launch with no config, malformed values, comments, duplicate keys, and HOME fallback; verify defaults/reconciliation.

Scope note: This removes Taskly's launch-time white flash; the stock WiX MSI wizard's native white checkbox/license controls belong to Rivet's upstream installer UI and are not restyled by this PR. A separate upstream change would be needed if those controls themselves are the white areas being reported.

Does not merge automatically.

@turinglambdaai
turinglambdaai merged commit d1d6abc into main Oct 21, 2026
10 checks passed
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