Pick Light, Dark or Follow system from Settings - #237
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 035ee6290a
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
One more from a separate review pass, not caught above — recording it rather than fixing it, since it's dev-only.
Compile-gated out of release builds by Two CI notes for whoever picks this up:
|
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 89d6ebe036
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
… flips - Add GWAppearancePreference (system/light/dark) split from the resolved GWAppearanceMode - load()/setPreference() persist and resolve against OS brightness; setMode() delegates - settings_screen.dart gets an Appearance card (_AppearanceControl on GWSelect) as its first section
- 5 cases: light/system load, setPreference round-trip, system-preference OS flip, light-preference OS flip left alone - Only the OS-flip-while-system case fails: no WidgetsBindingObserver exists yet
- GWAppearance mixes in WidgetsBindingObserver; didChangePlatformBrightness re-resolves only while preference is system - Observer registered from load() behind an _observing guard so a second load() (dev token probe) never double-registers - dispose() removes the observer before super.dispose() for test teardown
- Appearance card on /settings closes the verification blocker; its recipe no longer needs the dev Gallery - git mv to todos/completed/; the const-staleness sibling todo stays open with a dated note
A write that throws left the app in the old appearance with no way back: the guard at the top of setPreference had already taken the new value, so asking for it again returned immediately. Applying the mode first costs a failed write only the next launch. Also brings the quick-task artifacts inside their budgets and drops two test-file names from a source comment.
89d6ebe to
387e4f4
Compare
Until now there was no way to change the app's appearance on a normal build. The only
light/dark toggles lived behind the dev-tools define, so a shipped wallet was stuck with
whatever the OS happened to be on first launch, with no override.
What changed
Follow system.
you don't have to navigate away and back.
and the wallet follows, with no relaunch. That behaviour did not exist before in any form.
This also unblocks something: three plans carry a "re-skins live on an in-place appearance
toggle" check that could never actually be run, because reaching the dev toggle forced a
navigation and that rebuild hid the very staleness the check exists to catch. That check is
now runnable from Settings on any build.
Verification
1555 tests pass / 5 skipped / 0 failing (5 new, against a 1550 baseline); analyzer clean;
format, brace, raw-colour, seed-safety, key-logging and agent-rules gates all pass. Walked
on a real Windows debug build: all three options, the in-place re-skin, the live OS flip,
and persistence across a relaunch.
Deliberately not here
Status pills and disabled checkboxes still fail contrast in light mode — those are fixed on
a separate branch, not folded in here.
The dev sun/moon toggles stay as they are; they now share one mechanism with this control
rather than being the only way in.
The todo about
constwidgets not re-skinning stays open. Its named widgets were fixed, butit still tracks the deferred colour readers, so closing it here would claim more than this
change earns.