Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 35 of 139 Next →
February 25, 2026
patch Desktop Shell

Stretch theme editor to fill window, comprehensive token preview

Details

Dialog changes:

  • Stretch to fill window with 48/36px margins instead of fixed width (was

getting clipped on smaller screens)

  • Left color column fixed at 420px so labels stop truncating
  • Preview panel gets all remaining width

Preview panel rewrite — now shows every design token in context:

  • Typography: all text colors, accent links with underlines, text-on-accent

chips on primary/secondary backgrounds

  • Text Selection: simulated selection on surface + elevated backgrounds,

interactive SelectableTextBlock, all 6 note highlight colors

  • Buttons: matrix grid showing Primary/Secondary/Danger in Normal, Hover,

and Muted/Glow states side by side

  • Surface Hierarchy: full nesting stack (background → surface → elevated)

plus input background, recessed, and glass surfaces

  • Interaction States: normal, hover, selected (with accent bar), pressed
  • Semantic Colors: 4-column grid (Success/Warning/Danger/Info) each showing

solid + muted variants, plus Alpha/Beta stage badges

  • Form Elements: 2-column layout with inputs, checkboxes, radios, toggle,

progress bars in primary + secondary colors

  • Borders: standard + subtle side by side
  • Navigation: active (with accent bar), normal, hover states
  • Scrollbar: visual mockup of track, thumb, and thumb-hover states
  • Calendar: event + event muted chips
  • Modal & Overlays: standard + heavy backdrop previews
patch Desktop Shell

Fix loading animation freeze during workspace preparation

Details

The shimmer animation on the unlock screen froze during the

"Preparing workspace..." phase because new MainWindow() parses ~900

lines of XAML synchronously on the UI thread, blocking the render loop.

Three changes:

1. Before MainWindow creation, transition the unlock screen from an

animated shimmer to a static "Launching..." message. A static state

doesn't look broken when the UI thread blocks, unlike a frozen

translate animation.

2. Split MainWindow construction and DataContext assignment into

separate steps with dispatcher yields between them, giving the

render loop more chances to tick.

3. Move CloudSyncEnterPassphrase (which does S3 network I/O) off the

UI thread in AutoStartSyncAsync. Previously it ran synchronously

on whatever thread the async method started on.

patch Core

Flush WAL files on graceful shutdown

Details

Add checkpoint() methods to EntityStore, EventStore, BlobStore,

VaultManager, and DatasetStore. Call all of them from

privstack_shutdown() before dropping the handle.

Previously, shutdown just dropped the handle without checkpointing,

leaving WAL files on disk. On next startup this produced warnings like:

[StorageDiag] data.entities.duckdb.wal: WAL EXISTS! size=210638

DuckDB's implicit drop doesn't guarantee WAL flush, so an explicit

CHECKPOINT is needed for clean shutdown.

patch Desktop Shell

Make Duncan chat input multi-line with auto-grow

Details
  • Enable AcceptsReturn + TextWrapping on ChatInputBox so users can compose

multi-line messages (grows up to ~10 visible lines / 200px max height,

scrollable beyond that)

  • Move Send button below the text box, right-aligned
  • Intercept Enter via tunnel-phase KeyDown handler to send message (bypassing

AcceptsReturn's newline insertion); Shift+Enter inserts a newline as expected

patch Desktop Shell

Improve text selection contrast, theme editor UX, and Duncan panel shadow

Details
  • Halve ThemeSelection opacity across all 7 themes for better text readability

when selecting text (was too dark/saturated, obscuring selected text)

  • Add global SelectableTextBlock SelectionBrush style in PrivStackTheme.axaml

so Duncan chat and all selectable text blocks use the theme selection color

  • Widen theme editor dialog (1100→1300px) with redesigned header: proper title,

subtitle description, cleaner two-row layout with name input separated from

action buttons

  • Add Text Selection and Highlights preview sections to ThemePreviewPanel:

simulated selection overlay, interactive SelectableTextBlock, and all 6

highlight colors (Yellow, Blue, Green, Pink, Purple, Orange) as preview chips

  • Add subtle layered drop shadow to Duncan AI chat panel for better visual

separation from content area

← Prev Page 35 of 139 Next →

Get notified about new releases