refactor(ui): prioritize permitted operational views and touch topology

This commit is contained in:
Joseph Doherty
2026-11-13 19:24:12 -05:00
parent 0c41b613ac
commit 9dbfe7bcaf
70 changed files with 13050 additions and 96 deletions
@@ -115,3 +115,19 @@ The broad presentation fixture initially used a hyphenated value that could wrap
The reduced-motion matrix alone did not cover two existing opacity paths: pending pills faded to0.6 mid-animation, and predicted ghost groups faded all labels to0.45. Focused actual before proof is pending-motion-before.json and ghost-opacity-before.json (the fixture now supplies a real PredictedFlow overlay). The decorative pending fade is removed; ghost text stays opaque while its existing dashed shape/tinted fill still conveys prediction. No state mapping, edge math, poll or callback change.
Focused after proof covers light/dark × normal/reduced motion, four cases: pending opacity1/no animation, ghost group opacity1, and actual title/caption/pill text contrast at least4.5:1. The SVG ghost-background calculation composites its actual fill opacity over the actual alternate lane and wrap surfaces, rather than ignoring ancestor opacity. Existing FlowGraph/FlowDebugger/FlowTrace semantics118/118 tests pass (flow-opacity-focused.log). This is a narrow readability correction after the reduced-motion matrix, not a third broad screenshot review. Last full functional baseline remains1582/1582 with only these CSS opacity changes following it.
## SB10–12: policy shortcuts, observation summaries and topology composition
SB07–09 reviewed source/evidence was committed as `0c41b613`. This next batch is isolated to Dashboard/Health/Topology, TreeView scoped CSS, site.css, and DashboardStateTests/HealthPageTests, plus read-only fixture tooling and evidence.
- **SB10:** Dashboard shortcuts evaluate the exact `RequireDesign` and `OperationalAudit` policies used by the destination routes and rail. Health stays authenticated-only. Real-policy tests distinguish Viewer, Designer, Deployer, Administrator-only, unmapped and expanded multi-role principals. Administrator-only does not satisfy current RequireDesign; no role mapping or route policy was broadened. The initial test premise that it did was corrected transparently; raw failing logs remain. Six actual synthetic principal checks across the suite and four browser rail/shortcut comparisons cover these distinctions.
- **SB11:** Dashboard's four independent configured facts use shared aggregate geometry in a compact four/two/one-column composition; count-loading/failure/retry/single-flight behavior is unchanged. Health exposes online/offline/latest-interval-errors/unknown-metrics facts before its existing KPI groups. Site cards prioritize known offline observations, existing stale/backlog/reconciler/mirror/rejected-row/latest-interval conditions, missing reports, then remaining observations, with display-name and ordinal-id tie-breakers. This is presentation ordering, not a new fleet health aggregation or guarantee of healthy state. Heartbeat-only sites keep known Online liveness and explicitly say Metrics unknown. Script/alarm/dead-letter counters are atomically reset by SiteHealthCollector, so the former active-errors caption now says errors in last report interval; cumulative event-log failure badges and all existing failover/KPI/polling semantics remain unchanged. Native narrow inspection found the existing trend-window group extending to452px at390px; wrapping its existing header containers corrected it without changing query handlers.
- **SB12:** Topology no longer subtracts a guessed240px from viewport height. On narrow/short screens its tree follows document flow; roomy desktop uses actual flex available space and dvh-compatible height with a usable minimum tree region. Coarse pointers receive44px expand/content/button regions and always-visible existing row menus, while fine-pointer density and all lazy-loading, selection, search qualification, paging and poll/concurrency handlers remain unchanged. Its scope remains loaded sites/areas/instances. Checkbox-mode input semantics are unchanged; this batch does not claim a44px checkbox-input target across every TreeView consumer.
Validation: red-policy-health.log retains six intended preimplementation failures. Additional retained logs show the missing Razor using, real-auth fixture correction (bUnit's preexisting test cascade had masked the registered provider), and mistaken Administrator-only expectation; none was hidden or resolved by weakening authorization. The final focused behavior run passed101/101; full suite passed1591/1591, zero skipped/failed, in sb10-12-final.trx. Only the subsequent Health wrapping classes changed after that full run; final-wrap-focused.log passed101/101. No package dependency or backend model changed in this batch.
Browser acceptance is summarized explicitly in evidence/sb10-12/acceptance.json:22 accepted cases combine actual light/dark topology+Health at1440/768-short/390/real200% (720 CSS pixels/DPR2), four real-policy rail/shortcut fixtures, and two verified coarse contexts. Loaded topology includes12 synthetic sites ×6 areas, deliberately long names, actual lazy Load instances→Page1, existing loaded-search wording and native keyboard navigation. Health shows offline→warning→unknown→healthy ordering with unknown separated from known liveness. All accepted document widths fit; focus remains reachable after native smooth scrolling settles; coarse expand regions measure44×44px and rows≥44px. Mobile dark Health and touch screenshots were visually inspected.
The first pass stopped at missing fixture-only AuthorizedManualFailoverService DI before Health could render. After adding the real authorization wrapper over a rejecting synthetic backend, the retained initial22-case JSON recorded19 passes, including requested dark cases that actually stayed light and a false coarse context; those do not establish dark/touch acceptance. Final broad progress20 contains actual light/dark measurements but stopped awaiting coarse initialization. Its six immediate End-key geometry failures were measured before Bootstrap's existing smooth document scroll settled (timing proof retained). Focused confirmation waits for the actual last treeitem and viewport geometry, passing6/6 without keyboard source changes; two additional contexts explicitly verify CDP native touch emulation (maxTouchPoints1, pointer:coarse) and pass2/2. Raw failures, progress, scripts and corrected measurements remain separate; no all-first-pass-success claim is made.
The disposable localhost5201 host renders actual components/real policies with synthetic roles and rejecting read-only adapters. It has no database, fleet/actor system, LDAP or COM connection and is not complete application authorization/route acceptance. G1 historical evidence is unchanged. SB00 remains pending the published shared Secrets.Ui1.0.1 contrast patch and complete consumer baseline; no local undefined-token alias or caption override was introduced. No deployment or production name inventory was performed.