[verified] Add matching update and check controls to Rust Details #27

Merged
astaranix merged 1 commit from astaranix/details-update-check-buttons into main 2026-09-07 19:14:27 -04:00 AGit
Owner

Summary

  • Turn the top-left status badge into a high-priority manual update button, enabled only for a fresh available update with apply permission and no active operation.
  • Replace Refresh with Check, sending the existing authorized check request instead of merely refreshing the status display.
  • Match both controls' dimensions, typography, padding, and styling in wide and narrow layouts.
  • Share atomic request admission between Details and the tray menu to prevent overlapping submissions; preserve completion, busy, and shutdown handling.
  • Keep the legacy C++ client and privileged request broker unchanged.

Verification

  • Rust 1.88.0 on aarch64 Linux.
  • cargo test --locked --offline --all-targets: 166 passed.
  • cargo test --locked --offline --no-default-features --all-targets: 80 passed.
  • cargo build --locked --offline: passed.
  • cargo fmt --all -- --check: passed.
  • Clippy passes with the existing manual_clamp and question_mark warnings explicitly exempted; strict Clippy is not clean on the base either.
  • Regression coverage exercises real Iced widget hit-testing, exact worker commands, wide/narrow symmetry, availability/permissions, busy/shutdown behavior, queue failure, and concurrent admission.

No system update or deployment was performed. Local verification is separate from Forgejo CI status.

## Summary - Turn the top-left status badge into a high-priority manual update button, enabled only for a fresh available update with apply permission and no active operation. - Replace Refresh with Check, sending the existing authorized check request instead of merely refreshing the status display. - Match both controls' dimensions, typography, padding, and styling in wide and narrow layouts. - Share atomic request admission between Details and the tray menu to prevent overlapping submissions; preserve completion, busy, and shutdown handling. - Keep the legacy C++ client and privileged request broker unchanged. ## Verification - Rust 1.88.0 on aarch64 Linux. - `cargo test --locked --offline --all-targets`: 166 passed. - `cargo test --locked --offline --no-default-features --all-targets`: 80 passed. - `cargo build --locked --offline`: passed. - `cargo fmt --all -- --check`: passed. - Clippy passes with the existing `manual_clamp` and `question_mark` warnings explicitly exempted; strict Clippy is not clean on the base either. - Regression coverage exercises real Iced widget hit-testing, exact worker commands, wide/narrow symmetry, availability/permissions, busy/shutdown behavior, queue failure, and concurrent admission. No system update or deployment was performed. Local verification is separate from Forgejo CI status.
## Summary
- Turn the top-left status badge into a high-priority manual update button, enabled only for a fresh available update with apply permission and no active operation.
- Replace Refresh with Check, sending the existing authorized check request instead of merely refreshing the status display.
- Match both controls' dimensions, typography, padding, and styling in wide and narrow layouts.
- Share atomic request admission between Details and the tray menu to prevent overlapping submissions; preserve completion, busy, and shutdown handling.
- Keep the legacy C++ client and privileged request broker unchanged.

## Verification
- Rust 1.88.0 on aarch64 Linux.
- `cargo test --locked --offline --all-targets`: 166 passed.
- `cargo test --locked --offline --no-default-features --all-targets`: 80 passed.
- `cargo build --locked --offline`: passed.
- `cargo fmt --all -- --check`: passed.
- Clippy passes with the existing `manual_clamp` and `question_mark` warnings explicitly exempted; strict Clippy is not clean on the base either.
- Regression coverage exercises real Iced widget hit-testing, exact worker commands, wide/narrow symmetry, availability/permissions, busy/shutdown behavior, queue failure, and concurrent admission.

No system update or deployment was performed. Local verification is separate from Forgejo CI status.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
astaranix/nixos-updater!27
No description provided.