Skip to content

feat(command-center): put daily controls first and tidy Doctor, Stream, and HUD copy - #281

Merged
papi-ux merged 1 commit into
masterfrom
feat/command-center-hud-polish
Sep 5, 2026
Merged

feat(command-center): put daily controls first and tidy Doctor, Stream, and HUD copy#281
papi-ux merged 1 commit into
masterfrom
feat/command-center-hud-polish

Conversation

@papi-ux

@papi-ux papi-ux commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Command Center order: Quick Keys, Controls, Session, and Overlays come first; the Doctor, Stream, Sync, and Advanced cards follow. The session strip still carries the health verdict right under the header, so the health-first intent of the old guard survives in the strip, and the guard is re-pinned with the new order.
  • Header emphasis: Close is the primary button; Disconnect is a quiet ghost; End Session gets a destructive text tint through a new destructive flag on NovaActionButton.
  • Doctor card: the finding is the title (two lines allowed), the action lives in the chip, and the evidence line comes from the first item Doctor grades as actionable, so the host's passing "a stream is active" check no longer shows as evidence with "Confidence: high". The diagnose row is gone from the Overlays panel; the action is exposed as diagnosisAction for callers and tests.
  • Stream card (formerly "Launch preset", which also named the row beneath it): keeps the chip and the target line, drops the sentence the strip and the Doctor card already show.
  • Session strip: the pill is mode plus encoder ("Private Stream · NVENC"); capture path, mode source, and role move to a new sessionDetail line so the health summary keeps its room.
  • Overlays: new HUD Mode row (chip shows Minimal / Performance / Debug, tap cycles, disabled while the HUD is off) via Game.cycleNovaHudMode(); the Nova HUD caption is one sentence; Stats Overlay says it is the legacy Moonlight text.
  • Host safe profile (formerly "Post-session recovery report"): lives inside the expanded Advanced section, says it is observational, and is hidden when the host has nothing to report.
  • NovaHUD: REC reads SAFE; the 1% low tile shows the number once; Control retries observed and the status label Control retries become Link retries; bitrate and codec no longer use the accent tone; the Debug header uses a new streamModeShortLabel.
  • Changelog Unreleased bullets for all of the above.

Exact candidate

Verification

  • :app:testNonRoot_gameDebugUnitTest: 1602 tests, 0 failures (re-pinned NovaComposeSourceGuardTest, NovaQuickMenuUiStateTest +2 tests, NovaHudUiStateTest, AutoQualityUiStateTest, NovaDisplayResolutionPlannerTest, PolarisApiClientParsingTest)
  • :app:lintNonRoot_gameRelease: clean
  • :app:assembleNonRoot_gameDebug: three ABIs built
  • Device QA on the Retroid Pocket 6 (com.papi.nova.debug, live Control stream on pc-papi): header emphasis, strip pill and detail line, Quick Keys first, HUD Mode row cycling Minimal to Performance from the menu, Performance HUD showing Link retries with neutral bitrate, Doctor and Stream cards, Host safe profile inside Advanced, End Session flow.

Not covered: :app:assembleNonRoot_gameDebugAndroidTest fails on master already (NovaGameDetailComposeTest and NovaPolarisSyncSheetComposeTest reference parameters that no longer exist); nothing in this change touches those files. The two-line Doctor title landed after the device pass and is covered by the guard suite only.

…m, and HUD copy

Command Center opens on every Back press, so the things a player touches every session now come first: Quick Keys, Controls, Session, then Overlays. The session strip keeps the health verdict at the top, and the Doctor, Stream, Sync, and Advanced cards follow it. Close is the primary header button; Disconnect stays quiet and End Session reads as destructive through a new destructive tint on NovaActionButton.

The Doctor card leads with the finding and keeps the action in its chip, so Recheck no longer appears as title, chip, and button at once. Evidence comes from the first item Doctor grades as actionable, which drops the host's passing "a stream is active" check, and Confidence only shows beside real evidence. The card no longer repeats as the first row of the Overlays panel. The stability card is titled Stream and drops the sentence the strip and Doctor already show. The session pill names the mode and encoder; capture path, mode source, and role move to a detail line.

Overlays gain a HUD Mode row that cycles Minimal, Performance, and Debug (Guide + Y still works), and Stats Overlay says it is the legacy Moonlight text. The host safe profile card moves under Advanced, says it is observational, and stays hidden when the host has nothing to report. NovaHUD reads SAFE instead of REC for recovery, shows the 1% low value once, names control channel retries as Link retries, drops the accent color from bitrate and codec, and uses the short mode name in the Debug header.

The source guard that pinned the old Command Center order is re-pinned with the new intent. Verified on the Retroid Pocket 6 with a live Control stream.
@papi-ux
papi-ux merged commit d361eb6 into master Sep 5, 2026
6 checks passed
@papi-ux
papi-ux deleted the feat/command-center-hud-polish branch September 5, 2026 15:37
@papi-ux papi-ux mentioned this pull request Sep 5, 2026
4 tasks
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