Skip to content

Headless client UX polish - #361

Merged
cebarks merged 5 commits into
mainfrom
headless-ux-polish
Jul 30, 2026
Merged

Headless client UX polish#361
cebarks merged 5 commits into
mainfrom
headless-ux-polish

Conversation

@cebarks

@cebarks cebarks commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Link headless client recent raids to full raids list
  • Improve NUMA scheduling section formatting (flatten radio layout, separate descriptions)
  • Populate container CPU stats from bollard stats API (was hardcoded None)
  • Add inline confirmation row for Add Client button to prevent accidental creation
  • Fix auto-refresh race condition that wiped the confirmation row before user interaction

Test plan

  • Verify "View all raids" link appears on client detail page and navigates to /quma/raids
  • Verify NUMA scheduling radio buttons render cleanly with descriptions below each option
  • Verify CPU % column populates for running headless containers
  • Verify Add Client shows inline row with Save/Cancel, and 5s polling pauses while row is visible
  • Verify Cancel re-enables the Add Client button and resumes polling
  • Verify SSE headlessChanged event resumes polling and re-enables the button

Implemented with the help of Claude Code

cebarks and others added 5 commits July 29, 2026 02:03
Adds 'View all raids' button in the Recent Raids card header
on the client detail page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Moved radio button descriptions to separate paragraphs below
each option, matching the pattern used by other config fields.
Removed unnecessary inline flex wrapper.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cpu_percent was always None because no code ever queried it.
Added container_cpu_percent() using the standard Docker/Podman
cpu_delta/system_delta calculation, called from the supervisor tick.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clicking '+ Add Client' now shows a confirmation row in the table
with Save/Cancel instead of immediately creating the client.
The name input is present but disabled since naming requires a
profile_id that only exists after the container starts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The 5-second auto-refresh on the headless clients container would wipe
the inline confirmation row before the user could interact with it.
Pausing polling while the row is open and resuming on cancel or SSE
refresh prevents the race condition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cebarks
cebarks merged commit 5949fb6 into main Jul 30, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant