Skip to content

P0 UI-2: remove persistent Command Dock focus border; unify discovery + Browser Read under-IP progress - #647

Closed
masarray wants to merge 9 commits into
ui/command-dock-white-icons-20261020from
ui/command-dock-focus-discovery-line-20261020
Closed

masarray wants to merge 9 commits into
ui/command-dock-white-icons-20261020from
ui/command-dock-focus-discovery-line-20261020

Conversation

@masarray

Copy link
Copy Markdown
Owner

Base and scope

Stacked on Phase 1 PR #646 exact head d14a6e309326f8c22e2d812f9fff29bef719eb80; original combined FAT/field checkpoints 30a7f18e / de71a1a4 remain untouched. UI Phase 2 only; no control command service, safety flags, ARIEC61850 engine, report/leaf model or deployment/main changes.

Two verified presentation defects

  1. White outline after clicking Command Dock came from HeaderFocusRing + IsKeyboardFocused trigger drawing #AAFFFFFF on the full header; remove both; FocusVisualStyle={x:Null} suppresses default focus chrome, preserving mouse/keyboard toggle and up/down glyphs.
  2. Discovery rendered separate blocking BusyOverlay, spinning 28px dial and separate 5px progress + text that covered card identity/actions, despite a permanent 7px line slot already beneath IED IP. Remove overlay and spinner entirely, keep card content and IP readable. Repurpose existing under-IP 3px DiscoveryProgressBar for discovery and Browser Read.

Single source of progress truth

  • IedCardProgressPercent is a [JsonIgnore] derived presentation selection of existing DiscoveryProgressPercent and BrowserReadProgressPercent (no new counter). Per-IED discovery phase arm set by existing ResetDiscoveryProgress, automatically disarmed when IsBusy=false, avoids stale 100% on other busy operations. IsDiscoveryProgressActive and IsBrowserReading drive opacity without changing 7px fixed geometry.
  • Discovery animation timer only advances armed discovery, never stale discovery while Browser Read; its 20fps easing and existing milestone authority remain.
  • Retains disabled unsafe card interactions while busy but does not wash the identity out or block the whole card with a blank spinner.

Regression/release gates

Existing P0G fixed Browser Read slot regression updated for derived binding; new P109Y tests assert transparent focus, one shared progress, no spinner, independent device values, reset/retire/cycle and no stale re-arm. Require exact-head Windows build and tests + packaged native bridge + portable EXE smoke (then visual acceptance at 100%/150% DPI, browsing/discovery/reconnect on user setup) before merging/releasing. Do not claim relay acceptance from CI.

Copy link
Copy Markdown
Owner Author

Disposition: Superseded (fully preserved UI checkpoint) — safe closure of intermediate historical PR tracking, not an application merge or release acceptance.

Canonical replacement: #649 retains the cumulative field-accepted IED card/Command Dock UI ancestry; current #727/#729 integrated RC at 817c3910e8223fa2ac531a4426ada5d2d4bbbe50 retains the relevant code behavior. Original PR head f0831fa0a92f95340f5c03f4186f9412b6c5e7ff is an exact ancestor of the RC (GitHub compare ahead=798, behind=0).

Unique delta: Phase-2 discovery progress and Browser Read's non-layout-shifting under-IP indicator. Evidence: Both regression suites are byte-identical in RC: P0GBrowserSubstitutionReadAndIedCardProgressTests.cs and P109YTransparentDockAndDiscoveryProgressRegressionTests.cs. The latest MainWindow.xaml still has BrowserReadProgressLine in the fixed IED-card progress lane; MainWindow.xaml.cs still animates discovery only while IsDiscoveryProgressActive, and MonitorModels.cs computes IedCardProgressPercent without resetting the Browser Read progress. The original PR commit/branch remains recoverable, and original tests/checkpoints have not been deleted.

Safety: The current RC production files evolved after the PR, so we verified surviving specific behavior, not falsely claimed blob-identical entire XAML/model files. This action changes no runtime code, no main, no stable v1.6.42, no ARIEC engine pin and no R7/R10 or physical FAT policy.

Follow-up: Maintain exact distinct discovery and Browser Read progression and test compact-card geometry in current GUI/SSOT FAT; no merge of old presentation sources. Existing #649 and physically gated #729 remain OPEN. Do not revive/rebase older UI heads over current SSOT/Write/SMV.

@masarray masarray closed this Oct 26, 2026
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