Add AI companion speech balloon and fix star icon rendering
Details
Replace the broken gold spin animation on the AI tray star icon with a
comic-book style speech balloon that pops up near the star with contextual
messages from "PrivStack AI Companion". The balloon shows when content
cards are pushed (loading state), when AI generation completes (ready
state), and when intent suggestions are detected. It auto-dismisses
after 6 seconds and can be clicked to dismiss immediately. Opening the
AI tray also clears the balloon since the user is already viewing cards.
Fixed the 4-point star PathIcon data to use comma-separated coordinate
format (M12,0 L14.5,9.5...) which renders correctly across all platforms.
Removed the RotateTransform and .notifying spin animation styles that
were previously driving the gold effect.
The balloon fades in with a slide-up transition and includes a triangular
tail pointing toward the star icon for visual anchoring.
Version: 1.49.4 → 1.49.5
Replace AI tray floating popup with right-side slide-in drawer
Details
Changed the AI suggestions status bar icon from a 5-point star to a
4-point sparkle shape with gold spin animation when notifications are
active. Converted the AI suggestion tray from a floating overlay popup
to a right-side slide-in drawer panel matching the InfoPanel pattern.
The drawer slides in from the right edge with a 0.25s cubic-ease-out
transition, includes a click-outside backdrop to close, and has a
header with Clear All and close buttons. Added HasActiveNotification
property to AiSuggestionTrayViewModel. Bumped desktop version to 1.49.4.
Fix graph sidebar expander hover: target correct Fluent template elements
Details
The previous fix targeted ContentPresenter#PART_ContentPresenter but the Fluent Expander ToggleButton template uses Border#ToggleButtonBackground for the header background and a separate Border#ExpandCollapseChevronBorder for the chevron area. The purple hover color only filled the content column, not the chevron column.
Now targets Border#ToggleButtonBackground for hover state (ThemeHoverBrush) and sets Border#ExpandCollapseChevronBorder to transparent so the hover effect spans the full header width uniformly.
Fix graph sidebar dark mode: node type text color and expander hover glitch
Details
Node type labels (Notes, Tasks, Contacts, etc.) were using non-existent ThemeTextBrush resource, falling back to black text on dark backgrounds. Changed to ThemeTextPrimaryBrush which resolves correctly in all themes.
Expander headers in the glass sidebar had a visual glitch on hover where the opaque ThemeSurfaceBrush background from the global theme conflicted with the translucent ThemeSurfaceGlassBrush sidebar background. Added scoped transparent background overrides for all Expander toggle button states to blend seamlessly with the glass panel.
Show AI tray when any AI is enabled, not just intents
Details
The AI suggestion tray button was gated on IntentEngine.IsEnabled which
requires both AiEnabled AND AiIntentEnabled. Changed to check AiEnabled
and AiService.IsAvailable directly, so the tray shows whenever any AI
feature is configured regardless of intent toggle state.
Get notified about new releases