Add OffScreenMargin compensation for macOS content overflow
Details
If OffScreenMargin (window shadow area) has non-zero bottom value,
apply it as bottom margin on the main content Grid. On macOS, the
layout area can extend into the shadow region, causing plugin
ScrollViewers to overflow the visible window boundary.
Add layout diagnostics + ContentControl stretch + dynamic title bar height
Details
Added diagnostic logging on window open to capture actual
WindowDecorationMargin and OffScreenMargin values — this will reveal
if the macOS platform reports a different title bar height than our
hardcoded 28px (e.g., 38px on notch displays), causing content to
overflow the window bottom.
Also added explicit HorizontalContentAlignment and
VerticalContentAlignment="Stretch" on the plugin ContentControl to
ensure hosted views fill the available space.
If WindowDecorationMargin.Top differs from 28, the title bar spacer
row and border height are dynamically adjusted.
Fix content overflow: replace DockPanel with Grid for explicit height
Details
The DockPanel fill-child layout was not correctly constraining content
height with ExtendClientAreaToDecorationsHint, causing plugin views
(most visible on Dashboard Subsystems tab) to overflow the window
boundary by approximately the title bar height.
Replaced the root DockPanel with a Grid using explicit RowDefinitions
(28px title bar, Auto license banner, star content row). Grid star rows
provide deterministic height constraints independent of measurement
order, ensuring the content area fills exactly the visible space below
the title bar.
Remove bottom status bar, move AI + storage state into sidebar
Details
Delete the bottom status bar (~30px) to give plugin content full window
height. The bar contained: status message (removed — no value), active
timer indicator (already in sidebar footer), update status (in Dashboard),
subscription badge (in Settings > About), AI persona button (moved to
sidebar), and storage state pill (moved to sidebar Sync row).
Sidebar expanded footer gains:
- AI Persona button (star icon + gold dot for unseen insights) between
Search and Sync rows
- Storage state label ("Local"/"Cloud") appended to the Sync row
Sidebar collapsed footer gains:
- AI Persona icon with gold dot indicator
- Sync tooltip now includes storage state text
AI balloon repositioned from bottom-right to bottom-left to align with
the sidebar star icon. Balloon positioning code updated to search the
visual tree (star icon is now in NavigationSidebar's name scope).
Removed unused timer-pulse animation style from MainWindow.
Version: 1.69.0 → 1.70.0
Fix Subsystems tab scroll: match Overview tab layout pattern
Details
The Subsystems tab used Border > ScrollViewer which broke scrolling.
The Overview tab uses a bare ScrollViewer directly in Grid.Row="2"
which works correctly. Matched that pattern:
- Removed Border wrapper around ScrollViewer
- ScrollViewer directly in Grid.Row="2" with IsVisible binding
- Padding="24,0,24,32" matching Overview tab exactly
Get notified about new releases