Conversation
boot.rs saved win.inner_size() in physical px and restored it through WebviewWindowBuilder::inner_size, which reads logical px, so the window grew by the scale factor at every launch above 100%. config.rs stores logical px, clamps on load and keeps window_x/window_y; boot.rs recenters when the saved rectangle meets no monitor.
genericAdapter.ts, battle-net/adapter.ts and ubisoft/adapter.ts passed the backend ms stamp to formatRelativeTimeFromUnixSeconds, which rendered just now for ever on six platforms. lastLoginAt becomes lastLoginAtSec, adapters convert through unixMsToSeconds, values outside unix seconds render as unknown, time.ts shows an absolute date past 30 days.
get_desktop_wallpaper, platform_select_path, descriptor_select_file and steam_open_api_key_page ran on the main thread; they are command(async) now, only the PrintWindow hop stays on the event loop and the encoded wallpaper is cached on the TranscodedWallpaper mtime. platform_get_setup_status answers busy on lock contention instead of waiting_for_login. install_panic_hook goes through try_lock with a stderr fallback. tests/command_threading.rs fails on any sync command with a blocking body.
release.yml writes latest.json from the release job with windows-x86_64, linux-x86_64 and darwin-aarch64 entries; useAppUpdater.svelte.ts maps TargetNotFound to update_target_missing and parse errors to update_manifest_invalid, both declared in events.rs ERROR_CODES.
folders/store.ts sanitizeStore drops itemOrder keys of dead folders; server/src/index.ts sends no access-control-allow-origin when the request has no origin.
replace 37 hardcoded blues with var(--accent) and a derived --accent-text, declare the --z-* scale in app.css and use it everywhere (toasts now above the afk overlay and pin lock), swap literal whites in the onboarding and the account card ring for --fg and --bg-solid mixes so light themes render them.
the descriptor sandbox is a two-state enum and an unresolved root now refuses the profile instead of allowing every path; root placeholders are checked per os at load. save_snapshot frees a directory's keyring entries before remove_dir_all, and a new secrets module indexes entries so boot sweeps orphans on linux and macos. a clearSnapshotWhenSourceMissing flag on directory items, false on discord and gog.
the riot rollback copy moves from temp to the app state dir, encrypted with the snapshot crypto, discarded on every restore exit and swept at boot along with legacy temp leftovers. battle.net read_accounts no longer takes the lock nor stamps last_used_at; only a newly discovered email is written, without a timestamp.
…cky error toasts a move to folder submenu in the account context menu (also from shift+f10 on a tab-focused card), a click again to switch label on the armed card, a third onboarding button that refuses telemetry through the existing consent path, and error toasts that stay until dismissed. folder and persona deletes already confirmed, nothing changed there.
set_steam_path and resolve_steam_path share classify_steam_folder; a folder with steam.exe but no loginusers.vdf is refused with a coded message the frontend translates. a legacy unsalted pin hash is rewritten as pbkdf2 after one good unlock, in the gui and the cli, with a shared test vector. one hint line under the pin toggle.
…nap layouts vdf_set_nested_value shares the structural parser, keeps crlf and the file's indent, and returns an error instead of a silent ok when the path is missing. the allow-cli toggle is checked once at dispatch for every subcommand, diag included. the frameless window answers HTMAXBUTTON over the maximize button so windows 11 shows snap layouts; hover comes back through a tauri event.
the settings.cliEnabledHint string in the seven locales now says that with the toggle off every accshift command refuses to run, diag included, and that the app itself is unaffected. same fix on the type comment.
clientStorage imports the boot payload, which imports the platform registry, which read the store ids back from clientStorage; evaluated in that order the registry hit a temporal dead zone and the mock build booted to a blank page. the ids now live in storeIds.ts, re-exported by clientStorage, and the registry imports them from there.
hit_test_maximize is only called from the windows snap-layouts subclass, so cargo clippy -D warnings of the binary failed on linux and macos. pin tests fed byte literals into pbkdf2, which codeql treated as shipped secrets.
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.
fixes from the 2026-09 audit of 1.0.4.
window: size saved in logical px, position restored. accounts: last login unit fixed for battle.net, ubisoft and descriptor platforms. tauri: dialog and wallpaper commands async, busy setup state on lock contention, panic hook off the log sink mutex. updater: latest.json built in the release job for windows, linux and macos. descriptors: sandbox fails closed on an unresolved root, directory recapture frees keyring entries, keyring gc at boot. riot: rollback copy encrypted under the state dir. battle.net: listing is a pure read. steam: one folder predicate with a sign-in-once message, structural vdf writer, snap layouts on the maximize button. cli: allow-cli gate on every subcommand. pin: legacy hash rehashed to pbkdf2 after one good unlock. ui: accent and z-index tokens, theme-safe whites, move to folder in the context menu, click again to switch on the armed card, an onboarding button that refuses telemetry, error toasts stay until dismissed. also deny.toml, cors without origin, orphan itemOrder keys pruned, store ids moved to a leaf module to break an import cycle that blanked the mock boot.
decision to question: the descriptor sandbox refuses a whole profile when one declared root does not resolve, so ubisoft fails closed on a machine where its install dir is unknown, where it used to answer partially.
verified: cargo fmt, clippy -D warnings, cargo test, cargo deny, vitest, svelte-check, vp check, server tests, ui captures in mock mode. not run: dpi above 100%, linux and macos, snap layouts hover.