Repository navigation
Conversation
Add speech bubble size (Small/Normal/Large/Huge) and duration (Short/Normal/Long/Very long) preferences under Settings → Pet Behavior. Bubble growth is capped so it fits above the pet, and the Linux input shape uses the same cap. Duration scales the computed reading time; explicit caller and media durations are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Cap media bubbles with their larger .has-media box, in both the CSS and the Linux input shape, so enlarged previews are not cut off. - Re-render every pet window when the bubble size changes, including plugin-spawned pets and LAN visitors. - Move the display duration math into the pure pet-transient-duration.ts and test the duration setting directly. - Translate the bubble size and duration option labels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a Speech bubble theme preference (Light, Dark, System default) under Settings → Pet Behavior. Dark switches transient bubbles to dark colors; System default applies them only when the desktop uses dark mode and follows changes live. Light stays the default, and the pinned plugin HUD keeps its own look. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a Show Test Message button under the speech bubble settings that makes the default pet say a sample message, so size, duration and theme can be previewed. The Control Center explains when the pet cannot show it (paused, hidden or visiting another LAN host). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
[Medium impact] The changes affect transient speech bubbles across the desktop pet experience. The PR appears safe to merge, with non-blocking fixes for plugin bubble contrast and preview feedback. FindingsSummaryAdds speech bubble size, duration, and theme settings, plus a preview button.
Diagram%%{init: {'theme': 'neutral'}}%%
flowchart TD
Settings[Control Center settings] --> Save[Validate and save preferences]
Save --> Refresh[Refresh all pet windows]
Refresh --> Render[Render bubble colors and size]
Preview[Show Test Message] --> Say[applyExternalPetSay]
Say --> Slot{Plugin bubble active?}
Slot -->|Yes| Plugin[Render plugin bubble instead]
Slot -->|No| Sample[Render sample message]
Reviews (1) · Last reviewed commit: "feat(desktop): add a speech bubble previ..." · Reviewed by Greptile |
- Give accented plugin bubbles dark backgrounds in the dark theme so their text stays readable; pinned bubbles are unchanged. - Report the preview as not shown while a plugin bubble holds the transient slot, and tell the user to try again when it closes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Adds to Control Center → Settings → Pet Behavior:
bubbleTheme): Light (default, today's look), Dark, or System default.pet-window-styles.ts.@media (prefers-color-scheme: dark), so it follows the desktop's dark mode and changes live. The Control Center's own appearance setting doesn't affect it.refreshAllPetWindows, the same path as a size change.applyExternalPetSay, so size, duration and theme can be previewed. If the pet is paused, hidden or visiting another LAN host, the Control Center says why.Strings are added in English and French. Docs:
docs/desktop.md.Tests
preference-patch.test.ts: valid and invalidbubbleThemevalues.pnpm --filter @open-pets/desktop checkandpnpm docs:buildpass.🤖 Generated with Claude Code