v0.4.1 — maintenance release
Maintenance release. CI-blocking Tauri JS/Rust version mismatch fixed; build chain refreshed (TypeScript 5 → 6, vite 6 → 8 via @sveltejs/vite-plugin-svelte 5 → 7, svelte 5.55.5 → 5.55.9 with a transitive XSS fix); Dependabot grouping config added so neither the JS/Rust mismatch nor a vite/peer-dep deadlock can reopen silently. No user-facing changes — same wizard, same GUI, same flows.
Fixed
@tauri-apps/apipin (PR #7, squash5de58bd). Dependabot bumped the cargo-sidetauricrate 2.10.3 → 2.11.1 on 2026-05-08 (PR #2), but the JS-side@tauri-apps/apistayed at 2.10.1 in the lockfile. Tauri's startup version-mismatch guard tripped on every macOS CI run for two weeks before anyone noticed.gui/package.jsonwidened to"@tauri-apps/api": "^2.11.0"; subsequently bumped to 2.11.2 via the newtauri-jsDependabot group (PR #13).gui/biome.json$schemaURL (PR #24, squash37179ba). Cosmetic follow-up to PR #16 (biome CLI bump) — schema URL updated from/2.4.13/to/2.4.15/sobiome checkstops emitting an info-level deserialize warning.
Security
svelte5.55.5 → 5.55.9 (PR #8, squash04dacc9). 5.55.7 fixes an XSS onhydratablefrom user content. Practical exposure is low (F13's GUI doesn't render arbitrary user content), but the upstream fix lands here regardless. Also: SSR empty-attribute ban, regex hardening, runtime-property symbol move (5.55.7);svelte:bodyprint + keyframe percentage double-print fixes (5.55.8);{#await}batch + hydration fixes (5.55.9); stale-promise /$state.eager/bind:thisproxification fixes (5.55.6). Transitively bumpsdevalue5.7.1 → 5.8.1.
Changed — build chain majors
typescript5.6.3 → 6.0.3 (PR #14, squashaeff244). TS 5 → 6. Pin tightened from~5.6.2to~6.0.3. Full backpressure suite green under TS 6.vite-buildgroup: vite 6 → 8 + plugin-svelte 5 → 7 (PR #20, squash1c783df). Bundled by the newvite-buildDependabot group (PR #19).@sveltejs/vite-plugin-svelte7.1.2 widens its peer tovite ^8.0.0-beta.7 || ^8.0.0, unblocking the vite major.@sveltejs/vite-plugin-svelte5.1.1 → 7.1.2;vite6.0.3 → 8.0.14;vitestpatch. A prior standalone vite-8 bump (PR #17) was ERESOLVE'ing on the vite-plugin-svelte 5.x peer constraint — the group config is what fixed it; #17 was auto-closed as superseded.tailwindcss4.2.4 → 4.3.0 (transitive via PR #20). Minor. New utilities (@container-size,scrollbar-*,zoom-*,tab-*) none of which we use yet, plus canonicalization fixes. Standalone PR #22 auto-closed as redundant after #20's lockfile churn lifted it.
Changed — SvelteKit + tooling
@sveltejs/kit2.58.0 → 2.60.1 (PR #9, squashbb3e04c). Minor. Formsubmit/hiddenaccept numbers + booleans; warns on unread form remote-function validation; fixesquery.batchcross-talk and aborts navigation after async render. F13 is a Tauri shell via@sveltejs/adapter-static, so new features are inert here.svelte-check4.4.6 → 4.4.8 (PR #15, squash3193028). Patch.@biomejs/biome2.4.13 → 2.4.15 (PR #16, squash4ae036c). Patch.
Changed — Tauri pair (matched JS+Rust via Dependabot groups)
tauri-rustgroup: 2.11.1 → 2.11.2 (PR #11, squash29bd9ec). Patch line acrosstauri,tauri-build,tauri-codegen,tauri-macros,tauri-plugin-opener,tauri-plugin-shell,tauri-runtime,tauri-runtime-wry.tauri-jsgroup: api+cli 2.10.1 → 2.11.2 (PR #13, squash7e82d0c). JS/Rust now matched at 2.11.2 across both ecosystems — the grouping config's first successful validation.serde_json1.0.149 → 1.0.150 (PR #12, squash4823d6d). Cargo patch.
Changed — test-only dev dependencies
jsdom29.0.2 → 29.1.1 (PR #23, squashc47db4c). vitest env;getComputedStyle()fixes and perf improvements.axe-core4.11.3 → 4.11.4 (PR #21, squash5a2bf9a). vitest a11y tests; bug fixes aroundaria-labelledby+ hidden ancestors andgetAncestryescaping.
Added — Dependabot config
.github/dependabot.yml(PR #10, squash0714ebb; extended in PR #19, squash386dc39). Previously there was no config — version updates were running off the UI toggle, ungrouped, which is how the v0.4.0 cycle's JS/Rust mismatch slipped past review. Now two npm groups (tauri-js,vite-build) and one cargo group (tauri-rust) bundle deps that must move together. Thevite-buildgroup was validated end-to-end during this release cycle.
Added — CI
shellcheck + batsjob alongside the macOS Tauri build (PR #26, squash0482072). The existing workflow only covered three of the five backpressure pieces (npm run check,npm run test:unit,cargo check). The shell side (shellcheck -S warning bin/* lib/*.shandbats tests/) was previously enforced only locally + via the ralph loop, so a shell-only regression could have landed via PR. Closing that gap: newshell-checksjob onubuntu-latest, runs in parallel withbuild-macosin ~1m on a cold cache. Paths filter extended to includetests/**and.github/workflows/**. Workflow display name renamed from "GUI build (macOS)" to "CI"; file path kept asgui-build.yml.
Tests
No new tests. vitest stays 378/378 green; cargo check passes; full backpressure suite (svelte-check + tsc + vitest + cargo + shellcheck + bats 283/283) clean both at the initial release cut and again after the build-chain bumps. Maintainer smoke-tested the GUI on macOS at multiple points — no regressions on the static-adapter build path through SvelteKit 2.60.1, vite 8.0.14, or vite-plugin-svelte 7.1.2.
Full CHANGELOG: https://github.com/revolutionaryPhoton/f13-configurator/blob/main/CHANGELOG.md