Center toasts on plugin content area, unify dismiss button style
Details
Move ToastContainer from the root Panel (centered on entire window)
into the Grid.Column=1 content area Panel so toasts center on the
plugin view regardless of sidebar state.
Dismiss button: match the type icon's layout — 16x16 panel, centered
vertically, symmetric margin (10,0,12,0 mirroring 12,0,10,0), same
StrokeThickness=2. Both icon and dismiss are now vertically centered
instead of top-aligned.
Add toast entrance/exit animations
Details
Entrance: slide down from -40px with BounceEaseOut easing (0.4s) for a
subtle bounce effect. Exit: slide up -30px + fade out (0.3s) before
removal from collection.
ToastService now raises DismissRequested so the container can animate
out before the toast is removed. Manual dismiss clicks, action button
clicks, and auto-dismiss timer all use the same animated path. A
HashSet tracks in-flight dismissals to prevent double-dismiss races.
Collapse empty toast label to prevent gap above message
Details
Hide the FriendlyLabel TextBlock when empty so the StackPanel
spacing doesn't push the message text down.
Remove FYI label from Info toasts
Details
Info toasts now show only the message without a header label.
Success/Warning/Error toasts retain their labels.
Fix Ctrl+C not killing app when launched via build.sh
Details
The script ran dotnet run as a foreground process, but with
set -euo pipefail, bash's default SIGINT handling could leave
the child process running. Now the app is launched in the
background with an explicit trap that forwards SIGINT/SIGTERM
to the child PID and waits for it to exit cleanly.
Get notified about new releases