Fix: keep the empty-state message readable over a background image - #63
Merged
Merged
Conversation
Closing the last agent left the 'no agents open' copy painted directly on the user's chat background image, where a busy or light picture could make it unreadable. Wrap the copy in a translucent card instead: MandoGlassBrush is the theme's panel color with alpha, mirroring the transcript's own message bubbles, so the image still reads through the card while the text sits on a predictable surface. Alpha rather than Opacity — Opacity on a container fades its text too, which is the problem, not the fix. ThemeManager re-derives the brush from each theme's panel color so it tracks theme switches. The body line moves from 0.6 to 0.8 opacity: dimming reads as secondary against a flat panel, but over an image it only costs contrast.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
With a chat background image set, closing the last agent left the "no agents open" message sitting directly on the picture, where it could be hard to read. The message now sits in a translucent card, so the background still shows through while the text stays legible on any image.
What was happening
The empty state — the screen you land on after closing every agent — drew its icon, heading, explanation, and "New agent" button straight onto the window background. With no background image that is fine. With one, the text landed on whatever the picture happened to be at that spot, and a busy or light image made it unreadable. The problem got worse the higher the user had set their background opacity.
What changed
Scope and risk
Low. The change is confined to the one screen shown when no agents are open, plus one new theme color. No behavior changes: the "New agent" button, the rail, snapshots, and saved conversations are untouched. The empty state's show/hide logic is unchanged — the element that gets shown is now the card rather than the text stack.
One thing a reviewer may want to weigh in on is the "always shown" decision above. Making the card conditional on a background image being set is a small change if the preference is for a bare empty state otherwise.
Verification
Desktop builds clean (0 warnings, 0 errors) and the full Desktop test suite passes — 330 of 330.
Not covered: this was not visually confirmed in a running app. The empty state is XAML with no test coverage, so a reviewer should open the app, close every agent, and check it with a background image set (ideally a light or busy one) and with none, in both a light and a dark theme.