v2 review: page freeze, broken controls, and the proposal design across every page #53
No reviewers
Labels
No labels
breadbug
bug
displays
enhancement
keybinds
network
phase-1
power
privacy
recovery
search
snapshots
sound
ui
ux
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Breadway/bos-settings!53
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/v2-review-gaps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stacked on #46. Found by driving release builds in a hidden nested Hyprland session: sandboxed config, a refusing
pkexecstub, every page visited from the sidebar with an on-screen error overlay, and safe controls clicked. Closes BSET-51. Closes BSET-54. Closes BSET-55. Closes BSET-56. Closes BSET-57. Closes BSET-58. Closes BSET-59. Closes BSET-60.Note on Hyprland: BOS runs stock upstream Hyprland (0.56.2), configured with
hyprland.luainstead ofhyprland.conf. In that mode, upstream Hyprland rejectshyprctl keywordand the legacyhyprctl dispatch <args>syntax. BSET-57 and BSET-58 come from that, not from any change to Hyprland.Round 2 (2026-10-09)
Bugs fixed
dnsand every 802.1x key (eap,identity,ca_cert, ...). Places lostlearn. Unmanaged keys are now carried over, with a regression test.hyprland.lua,hyprctl keywordis refused ("keyword can't work with non-legacy parsers") but still exits 0. It now useshyprctl evaland checks for theokreply.hyprctl dispatch dpms off, which Hyprland running fromhyprland.luaparses as Lua and rejects (exit 7). It now writeshl.dsp.dpmsthroughhyprctl evaland migrates the old spelling, which BOS's skel hypridle.conf also ships (filed as BOS-87). Verified with a real hypridle in the nested session.dupermission errors. Partial totals are used, and measuring no longer locks the cleanup buttons.One save model
Every settings form saves itself. Toggles, pickers and sliders save shortly after a change; text fields save when you leave them, so a half-typed password is never written. All Save buttons are gone. Leaving a page writes anything still waiting, and only a failed save stops you, with Try again or Leave without it.
Proposal design, page by page
breadcrumbs profile set), one sentence each, and an Edit sheet (exit node and sign-in network only appear when Tailscale is on, matching breadcrumbs). A note shows when a place has a sign-in network or exit node that breadcrumbs skips. Leftover empty places get Tidy up with Undo. Saved networks sit in a searchable list with Edit and Forget (with Undo). VPN becomes Other connections. The breadcrumbs tunables move to Advanced in plain words (DNS presets, seconds pickers).Capability changes (needs your decision)
Round 1 items 2, 3, 5, 6 and 7 still stand as described before. Changed or new:
Printer_<host>), instead of a typed name.Not done
Verification
npm run check(0/0),npm test,npm run build,cargo fmt --check,cargo clippy --all-targets --locked -D warnings,cargo test --locked(143 passed). New tests cover breadcrumbs key preservation, the dpms migration, firewall ranges, and Bluetooth stand-in names. Every page was loaded with an error overlay and no errors; key pages were also checked floating at 760 and 480 px.Found by driving the v2 build in a nested session: - Updates: the firmware list was keyed by device name, so two "Hub" devices threw each_key_duplicate and the whole Updates section (including Update everything) failed to render. - Battery: upower's time-to-empty was shown while plugged in and fully charged ("about 48.8 hours left"). Time remaining now only appears while discharging, "Time until full" while charging, and the status reads as words ("Fully charged") instead of upower's identifiers. - Power modes: TLP users saw "No profile service". With TLP installed and no tlpctl, Power offers Set up power modes, which installs the allow-listed tlp-pd and enables tlp-pd.service through pkexec. The Home tile links there instead of sitting disabled. - Idle timers saved outside the presets (240, 330 seconds) showed as raw numbers; any value now reads as minutes and seconds. - Sidebar: native title tooltips only appear in the icon rail. At full width they repeated the label and their popup covered the next item, swallowing clicks. The footer shows the hostname instead of repeating the username. - Home: status read failures collapse into one "Some status couldn't be read" disclosure with readable names instead of raw D-Bus errors on the page; Do not disturb says Not available with a tooltip.- Pages open at the top: the content pane kept the previous page's scroll offset, so Desktop & bar opened halfway down after Appearance. - Default apps: hidden xdg-mime entries (userapp-Zen-W24BP3.desktop) show their real Name instead of the raw desktop id. - Date & language: locales read as "English (United States)" instead of en_US.utf8. - Backup & restore: snap-pac descriptions read as sentences ("Before installing codex-update-manager") instead of pacman command lines; the raw text stays in the tooltip. - Lock screen: clock format, wait after a wrong password and background are plain choices; a custom strftime format stays available under a disclosure, and the missing-example schema dump is gone. - Notifications: when the running bar lacks the settings API, say so in words and keep the D-Bus error behind Details. - Storage: one bar per filesystem (/ and /home on one Btrfs volume were shown twice). - Short lists (firmware, firewall rules, users, nearby networks, backup snapshots) flow with the page instead of sitting in small inner scroll boxes; long package lists get a taller cap. - Updates no longer lists Secure Boot certificate stores as firmware. - Managed by BOS startup entries are styled rows; About's Help actions are rows with buttons instead of two full-width bars; Privacy & security no longer repeats the Users page; Printers page title matches the sidebar.v2 review: fix the page freeze, Updates crash and remaining design gapsto v2 review: page freeze, broken controls, and the proposal design across every page