Skip to content

fix: settings window blank in production builds#120

Merged
phildenhoff merged 2 commits into
mainfrom
cdl-settings
Jun 15, 2026
Merged

fix: settings window blank in production builds#120
phildenhoff merged 2 commits into
mainfrom
cdl-settings

Conversation

@phildenhoff

Copy link
Copy Markdown
Member

Problem (CDL-15)

In production, opening Settings… showed a window with nothing in it. The settings window chose its URL by checking whether build.dev_url was present in the config, assuming presence means dev. It doesn't: the bundled release config carries devUrl from tauri.conf.json verbatim, so production builds navigated the settings webview to http://localhost:1420/settings — a Vite dev server that doesn't exist on user machines. The page never loaded, so the frontend reveal (SettingsWindow.tsx) never ran; pressing Settings… again hit the reopen path, which show()s the never-loaded window — hence "the window opens, but nothing shows up".

Fix

Gate the dev-server URL on tauri::is_dev() instead of dev_url presence. Release builds now always load WebviewUrl::App("/settings")tauri://localhost/settings, served from bundled assets (Tauri's asset protocol falls back to index.html for SPA routes).

Verification

Reproduced and verified in a local release build (tauri build --no-bundle with a scratch app identifier and the WebDriver plugin temporarily enabled):

  • Before: settings webview never loaded (JS unreachable, no page-load events); traced URL was http://localhost:1420/settings.
  • After: page-load events fire for tauri://localhost/settings, the window renders all panes (General/Library/Integrations), and reveals itself.

Dev behavior is unchanged — the dev branch is the exact prior expression.

Also catches Cargo.lock up to the v0.5.0 version bump (#116), which merged without regenerating the lockfile.

Fixes CDL-15

🤖 Generated with Claude Code

The settings window picked its URL by checking whether build.dev_url was
present in the config, assuming it is None in release. It is not: the
bundled config carries devUrl from tauri.conf.json verbatim, so production
builds pointed the settings webview at http://localhost:1420/settings — a
Vite dev server that does not exist on user machines. The page never
loaded, the frontend reveal never ran, and reopening from the menu showed
a permanently blank window.

Gate on tauri::is_dev() instead, so release builds always serve the
bundled assets via tauri://localhost/settings (the asset protocol falls
back to index.html for SPA routes). Verified in a local release build:
the settings webview now loads, renders all panes, and shows itself.

Also catches Cargo.lock up to the v0.5.0 version bump (#116), which was
committed without regenerating the lockfile.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 78.94%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@phildenhoff phildenhoff enabled auto-merge (squash) June 15, 2026 00:45
@github-actions

Copy link
Copy Markdown

libcalibre Test Coverage Report

Overall coverage: 80.81%

📊 Download HTML Report

Coverage breakdown available in the artifacts.

@phildenhoff phildenhoff merged commit 4a3958a into main Jun 15, 2026
7 checks passed
@phildenhoff phildenhoff deleted the cdl-settings branch June 15, 2026 00:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant