Use actual database name instead of hardcoded "main"
Details
DuckDB names the default database after the file stem (e.g. "data" for
data.entities.duckdb), not "main". The COPY FROM DATABASE command was
failing with "Catalog main does not exist" because the catalog is named
"data".
Fix: query pragma_database_list() to get the actual default database name
and use it in the COPY FROM DATABASE statement. Applied to both the
managed EntityStore::compact() and standalone compact_duckdb_file().
Use fresh connection for COPY FROM DATABASE
Details
The "Catalog main does not exist" error occurred because COPY FROM DATABASE
was running on the same connection that had just performed CHECKPOINT during
maintenance. DuckDB's catalog state can become stale after heavy operations
on a long-lived connection.
Fix: close the managed connection first, then open a fresh standalone
connection specifically for the COPY FROM DATABASE operation. This ensures
clean catalog state. Same fix applied to compact_duckdb_file for standalone
DB files.
Error recovery also improved — if the copy fails, the original connection
is restored so the entity store remains functional.
Fix white flash on sidebar nav items from global Button template fix
Details
The global PrivStackTheme Button ContentPresenter fix (which prevents
Fluent hover flash) was also applying to NavButtonTheme buttons. These
buttons use a Border with BrushTransition for smooth hover animation,
but the ContentPresenter background (set instantly, no transition) was
rendering on top, causing a white flash before the Border transitioned.
Fixed by explicitly setting ContentPresenter background to Transparent
on all NavButtonTheme button classes: nav-item, nav-item-collapsed,
workspace-btn, nav-footer-item, nav-footer-item-collapsed — in all
pseudoclass states (normal, pointerover, pressed, active).
Desktop 1.45.4 → 1.45.5
Get notified about new releases