feat(provider-dashboard): topology skeleton replaces v1 primary view (PR-B)#33
Closed
AquiGorka wants to merge 2 commits into
Closed
feat(provider-dashboard): topology skeleton replaces v1 primary view (PR-B)#33AquiGorka wants to merge 2 commits into
AquiGorka wants to merge 2 commits into
Conversation
PR-B of the provider-dashboard v2 redesign. /provider/:pk now renders the 4-zone layout: counter-strip placeholders, central topology, right-rail activity-feed placeholder, sparkline-strip placeholders. The 5-column tx-flow moves below the new zones as a "drill-down" section that the existing Live/Range mode toggle continues to populate end-to-end (v1 behavior preserved; click-to-drill wiring lands in a later vertical slice). Topology zone: SVG layer for edges, absolutely-positioned HTML for nodes. MY PP center renders as a yellow ellipse absorbing OpEx Balance + Fund / Copy PK / Copy URL action chips (the v1 header actions, plural per sketch). Councils sit on a fixed ring around MY PP; each node shows council name, jurisdiction flags, an "idle" gray activity tag, asset count, and up to 10 sibling-PP dots fetched via POST /dashboard/council/discover (best-effort, cached per render). Per PM call: all council nodes render in the idle gray palette in PR-B. The green/amber palette comes alive when the pulses PR ships and there are real edge-pulse counts to bucket on. No new backend endpoints. No mobile responsive. No drill-down click wiring yet (next vertical-slice PR).
Contributor
Author
|
Closed per redesign-provider-dashboard-3 prompt: PR-B implemented v1-replacement layout based on a misinterpretation of the sketch wording. PM clarified v2 actually preserves the v1 top section (header / OpEx card / 3-up Councils list) and replaces ONLY the events UI (5-column + tx detail / Live-Range toggle / Search). Fresh corrective PR coming on a new branch per the new prompt — do not re-use this branch or its diff. |
Merged
7 tasks
AquiGorka
added a commit
that referenced
this pull request
May 18, 2026
…ents UI with 4 v2 zones (#34) ## Summary Corrective v2 layout per `redesign-provider-dashboard-3-prompt.md`. Closed PR #33 (wrong layout — v1 replacement based on a misread of the sketch wording). This PR is fresh and: **Preserves v1 (code paths unchanged)** - Top header + copy URL / copy OpEx / Fund chips - OpEx Balance card - 3-up Councils list (asset-chip-copy dropped per `-3` §5) **Removes the entire v1 events UI** - 5-column tx flow (Deposit / Mempool / Submitted / Verified / Withdrawn) - `renderTxDetail` modal + `renderUtxoDetail` + `renderWithdrawDetail` - Live/Range mode toggle, Range Search, date pickers, auto-flip-to-Range - `setupDashboard` orchestration + `classifyTxIntoColumns` - `api.ts` wrappers exclusively serving the removed surfaces: `listTransactions`, `getTransactionDetail`, `getUtxos` + their types **Adds 4 always-live v2 zones in the freed space** - **Counter strip** (4 boxes; `#1971c2` outline / `#e7f5ff` fill): THROUGHPUT (last-15m mean of `throughputPerMin`), AVG LATENCY (weighted avg `avgProcessingMs` over the last 100 bundles), QUEUE DEPTH (most recent snapshot), ERROR RATE (1h `bundlesFailed / (completed + failed + expired)`; gracefully `—` until PR-104 lands and exposes `bundlesFailed`). - **Topology**: SVG edges + HTML nodes. MY PP yellow ellipse at center, council ring, sibling-PP dots via `POST /dashboard/council/discover` (cached per render, best-effort). Live edge pulses on every relevant WS event with per-kind color per sketch. Council node palette transitions `idle` → `low` → `high` based on rolling-5-min pulse count (`≥10` high, `≥3` low). Passive — no click handlers anywhere. - **Activity feed** (right rail): card stack, newest top, ≤5 visible, `~8s` fade, border-color per event kind, deposit/withdraw amounts surfaced. Passive — no click handler. - **Sparklines** (3 charts, blue/purple/green): rolling 60-min trends for throughput / latency / queue from `/dashboard/metrics?rangeMin=60`, re-fetched every 60s alongside the counter strip. WS reconnect handled by `EventsClient` (existing exponential-backoff path). No Range fallback when WS drops, no mode toggle anywhere. **ERROR RATE counter gracefully degrades** if the platform predates PR-104: when the snapshots don't include `bundlesFailed`, the counter shows `—`. Once PR-104 merges + deploys, the counter starts populating without any further frontend change. `MetricsSnapshot.bundlesFailed` is typed as optional for that reason. ## Out of scope (per `-3`) - No click-wiring on new zones (drill-down destinations are gone with the events UI; future click behavior is a separate change). - No backend changes; no new endpoints. `provider-platform#104` (`bundles_failed`) stays open as a separate PM-owned merge. - No mobile / responsive redesign. - No restoration of asset-chip-copy on the 3-up Councils list. ## Test plan - [x] `deno task check` clean (type-check) - [x] `deno fmt --check` clean - [x] `deno lint` clean - [x] `deno task build` (dev + production) succeeds - [x] `deno task test` green (7 passed) - [ ] PM verifies in browser per `-3` §6: - v1 top section unchanged (header chips + OpEx card + 3-up Councils) - No 5-column / no tx detail card / no Live/Range / no Search visible - 4 v2 zones render below the v1 top section - Live WS events animate pulses + counter increments + feed cards + sparkline ticks - [ ] `provider-platform#104` separately verified end-to-end once merged + deployed; ERROR RATE counter then populates with real values. Companion file: `PROVIDER_DASHBOARD_NOTES.md` not added — Phase 0 raw audit dumps from `-1` still apply unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Vertical-slice PR-B of the provider-dashboard v2 redesign.
/provider/:pknow renders the 4-zone layout from the locked design sketch:THROUGHPUT,AVG LATENCY,QUEUE DEPTH,ERROR RATE), no live values yet.idleactivity tag + asset count + up to 10 sibling-PP dots.The v1 5-column tx-flow moves below the new zones as a "drill-down" section. The Live/Range mode toggle is wired into the new scaffold and continues to populate the 5-column end-to-end (v1 search + dedup behavior preserved). Click-to-drill from topology nodes / activity-feed cards stays in a later vertical-slice PR per the prompt.
What's not in this PR (per spec)
POST /dashboard/council/discover(Phase 0 Q3 approval), called in parallel per membership at view load, best-effort.Council node activity color
All council nodes render in the gray ("idle") palette per PM call — the green/amber palette comes alive when pulses ship and there are real edge-pulse counts to bucket on. Faking it from membership status would mislead and require unwinding later.
Test plan
deno task check(type-check) cleandeno fmt --checkcleandeno lintcleandeno task build(dev + production) succeedsdeno task testgreen (7 passed)Part of the provider-dashboard v2 redesign (see
pm-theahaco/prompts/redesign-provider-dashboard-2-prompt.mdand the locked design sketch).