chore(deps): update all dependencies + fix Settings Save button loading state#123
Merged
Merged
Conversation
Summary: - Rust compat bumps via cargo update (tokio 1.52.3, reqwest 0.13.4, rustls 0.23.40, uuid 1.23.3, wasm-bindgen 0.2.123, etc.) - RustCrypto majors in app crate: hmac 0.12->0.13, pbkdf2 0.12->0.13, sha1 0.10->0.11 (aligned on digest 0.11) - JS deps to latest: vue 3.5.38, vuetify 4.1.1, vite 8.0.16, vue-tsc 3.3.4, axios 1.17.0, @playwright/test 1.60.0, biome 2.5.0 - Pin time at 0.3.47: 0.3.48 breaks cookie 0.16.2 (locked by actix-web 4.x) - Fix v-form @submit.prevent @submit handlers into a single @submit.prevent="handler" (duplicate onSubmit prop now caught by vue-tsc 3.3) - Align biome $schema to 2.5.0 Reason: Keep dependencies current and pull in upstream fixes. getrandom 0.4 is deliberately not adopted: it is pinned at 0.3 by the transitive crux_http -> rand 0.9 -> rand_core 0.9 chain and bumping it would break the WASM backend. Verification: - cargo +nightly fmt --check: clean - cargo clippy --workspace --all-targets --features mock -- -D warnings: clean - cargo test --features mock: 367 pass - scripts/build-frontend.sh: WASM + types + UI build clean - bun run tsc: clean - e2e: 133 passed - cargo audit: unchanged baseline (rsa via jsonwebtoken, no fix; 3 unmaintained transitive warnings) Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
…spinning Summary: The Settings "Save" button binds to the global is_loading flag, which was stuck true after every page load, showing a permanent progress spinner. Reason: Event::Initialize called start_loading() and fanned out to silent background fetches (LoadSettings, wifi CheckAvailability). None of their completion handlers cleared the flag (LoadSettingsResponse uses no_loading; the CheckAvailabilityResponse handler clears loading in no branch). CheckAvailability additionally re-set the flag because it used unauth_post! (method: get), which calls start_loading(). So is_loading stayed true forever after init. Fix: - Remove start_loading() from Event::Initialize (init must stay silent) - Switch CheckAvailability to the silent http_get! macro, consistent with the deliberately-silent LoadSettings - Bump version 1.2.3 -> 1.2.4 Verification: - Added regression tests (init settle: authenticated+wifi-available and wifi-unavailable) that failed before and pass after the fix - cargo +nightly fmt --check, clippy -D warnings: clean - cargo test --features mock: all pass; WASM build clean; 133 e2e pass Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
JoergZeidler
approved these changes
Jun 15, 2026
There was a problem hiding this comment.
Pull request overview
Maintenance PR that updates Rust + UI dependencies (including majors) and fixes a UI loading-state regression where the Settings “Save” button could spin indefinitely after page load due to is_loading being set during initialization without being cleared by the background fetch completion handlers.
Changes:
- Update UI dependencies (Vue/Vuetify/Vite/etc.) and Rust crate dependencies; bump version to 1.2.4.
- Fix initialization/loading-state behavior by removing
start_loading()fromEvent::Initializeand making WiFi availability checks use a silenthttp_get!. - Clean up Vuetify form submit handlers to use a single
@submit.prevent="..."binding.
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ui/src/pages/UpdatePassword.vue | Fix form submit event binding to a single @submit.prevent handler. |
| src/ui/src/pages/SetPassword.vue | Fix form submit event binding to a single @submit.prevent handler. |
| src/ui/src/pages/Login.vue | Fix login form submit event binding to a single @submit.prevent handler. |
| src/ui/package.json | Update UI dependency versions. |
| src/ui/bun.lock | Regenerate Bun lockfile after dependency updates. |
| src/ui/biome.json | Update Biome schema reference to match updated Biome version. |
| src/app/src/update/wifi.rs | Make WiFi availability check silent (http_get!) to avoid global loading flag side effects; update test accordingly. |
| src/app/src/update/mod.rs | Remove start_loading() from init fan-out; add regression tests for is_loading. |
| src/app/Cargo.toml | Bump crypto-related crate versions (hmac/pbkdf2/sha1). |
| Cargo.toml | Bump workspace version to 1.2.4. |
| Cargo.lock | Lockfile updates from Rust dependency upgrades. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address PR review: the init-settle regression tests only checked is_loading after follow-up responses, so they would still pass if start_loading() were reintroduced in Initialize and cleared later. Assert !is_loading immediately after update(Event::Initialize, ...) to pin the "init is silent" invariant directly. Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two changes, bundled as one maintenance PR (version bumped to 1.2.4):
1. Dependency updates (incl. majors)
2. Fix: Settings "Save" button spins permanently after load
The Save button binds to the global
is_loadingflag, which was stucktrueafter every page load.Cause:
Event::Initializecalledstart_loading()and fanned out to silent background fetches (LoadSettings, wifiCheckAvailability). None of their completion handlers cleared the flag, andCheckAvailabilityre-set it by usingunauth_post!(method: get).Fix: removed
start_loading()fromEvent::Initialize, and switchedCheckAvailabilityto the silenthttp_get!macro — consistent with the deliberately-silentLoadSettings.