Bug 1: On a fresh load with no saved config, RootLayout returned `null`
while a useEffect-driven `router.navigate()` fired, leaving a blank screen
until the user manually refreshed. Move the redirect into the root route's
`beforeLoad` so it happens synchronously during route resolution and the
settings form renders on first paint.
Bug 2: `DemoProvider` was mounted inside `RootLayout` only on the
non-settings branch, so any component reading `useDemo()` outside that
branch would throw "useDemoContext must be used within DemoProvider".
Hoist `<DemoProvider>` to `main.tsx` so the context is available app-wide.
Adds vitest + RTL setup with regression tests for both behaviours.
Adds a `tauri` task to turbo.json with dependsOn ["^build"] so that
desktop#tauri automatically triggers web#build first via the workspace
dependency graph. The tauriScript routes tauri-action through turbo
rather than invoking tauri directly, eliminating the need for an
explicit build step.
- Add @semantic-release/npm (npmPublish: false) to bump root package.json
- Add prepareCmd to exec plugin to sync Cargo.toml on each release
- Add Cargo.toml to @semantic-release/git assets
- Manually advance package.json and Cargo.toml from 0.1.0 → 0.4.0
Covers workspace IDs, session IDs, peer IDs in breadcrumbs and titles,
server base URL in sidebar, webhook URLs/IDs, and session metadata source
tags across all 11 components.
safari13 causes esbuild to fail on modern destructuring patterns
from TanStack Router/Query. In 2026, all WebKit versions that can
run Tauri v2 fully support esnext. Use chrome120 for Windows.
http://** uses ** in hostname which is not valid URL Pattern spec.
Hostname wildcard is * (not **); non-default ports require the *:*
host:port form. Add all four variants to cover http/https on both
default and non-default ports.