Skip to content

fix(dashboard): expected-vs-actual card reshape + grid spacing + inspect close button (#817) - #824

Merged
VijitSingh97 merged 3 commits into
developfrom
fix/eva-card-layout
Aug 1, 2026
Merged

fix(dashboard): expected-vs-actual card reshape + grid spacing + inspect close button (#817)#824
VijitSingh97 merged 3 commits into
developfrom
fix/eva-card-layout

Conversation

@VijitSingh97

Copy link
Copy Markdown
Collaborator

Operator feedback on the live v1.16.0 dashboard, three fixes:

One 30d window, combined Monero+XvB (#817)

  • Every row now shares one trailing 30d window (7d-beside-30d read as inconsistent). Metrics.p2pool_7d is dropped — unconsumed after the switch.
  • Monero and XvB are one combined row on both sides: an XvB win pays out through ordinary payouts the payout table cannot attribute, so the confirmed actual always contains win XMR — a P2Pool-only expectation overshoots on every winning box (the operator's screenshot showed 74023% for exactly this reason, amplified by the shared prod wallet). Expected folds XvB's published per-day estimate ×30 when fresh (includes_xvb drives the "Monero + XvB (30d)" vs "Monero (30d)" label; nothing is fabricated when the estimate is stale). The wins row keeps count + recency only.

No scrolling, honest spacing

  • The card's scroll wrapper is gone; the table wraps (eva-table: table-layout: fixed, because WebKit's auto layout ignores overflow-wrap in min-content sizing and overflowed anyway — caught live in the harness, verified at 1400px and 375px: no card overflow, no body scroll).
  • Grid-wide align-items: start: short cards previously stretched to their row's tallest neighbour, rendering mostly-empty bordered boxes across the Advanced grid.

Worker Inspect close button

The header always carried class="flex items-center justify-between" — but .justify-between was never defined in dashboard.css, so the row packed left and the ✕ sat beside the title. The utility now exists; the button lands top-right.

Coverage

TestEarningsVsActual reworked for the combined shape (fold math, includes_xvb both off-paths, 30d partial propagation); frontend card tests assert the combined/plain labels, the wins row carrying no XMR figure, and eva-table presence; fixture regenerated (drift guard green). Dashboard 1640 pass / 96.9% / patch 100%; frontend suite green; make lint clean.

Docs: dashboard.md card section rewritten for the combined row; testing-strategy row updated.

Closes #817

🤖 Generated with Claude Code

VijitSingh97 and others added 3 commits August 1, 2026 15:03
…nero+XvB, no scrolling (#817)

Operator feedback on the live card:

- ONE shared trailing 30d window for every row — 7d-beside-30d read as
  inconsistent. Metrics drops the now-unconsumed p2pool_7d.
- Monero and XvB become ONE combined row on BOTH sides: an XvB win pays
  out through ordinary payouts the payout table cannot attribute, so
  the confirmed actual always contains win XMR — a P2Pool-only
  expectation overshoots on every winning box. Expected now folds XvB's
  published per-day estimate (x30, only when fresh; includes_xvb drives
  the label), and pct compares like with like. The wins row keeps only
  its count + recency; its XMR lives in the combined row.
- The card never scrolls in either view: the est-scroll wrapper is
  gone, and the table wraps via eva-table (table-layout fixed, because
  WebKit's auto layout ignores overflow-wrap in min-content sizing and
  overflowed anyway — caught in the live harness).
- Grid-wide: .grid { align-items: start } — every short card previously
  stretched to its row's tallest neighbour, rendering mostly-empty
  bordered boxes across the Advanced grid.

Verified in the running frontend at 1400px and 375px: no card overflow,
no body scroll, cards hug content.

Closes #817

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… header always used

The header markup (flex items-center justify-between) predates this fix,
but the utility class was never defined in dashboard.css — the flex row
packed left and the close button sat beside the title instead of the
top-right corner.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ld (#817)

Verifier findings on the combined row: xvb_day is upstream-published —
a hostile/corrupt negative dragged the combined expectation toward (or
past) zero while 'available' stayed True, inverting pct or zeroing the
denominator. It now folds as 0 (a negative estimate is meaningless) and
the label honestly stays P2Pool-only. Tests: the negative-fold guard,
plus the frontend assertion that the scroll wrapper stays gone (scoped
to the card's own markup).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@VijitSingh97
VijitSingh97 merged commit 9d090b5 into develop Aug 1, 2026
@VijitSingh97
VijitSingh97 deleted the fix/eva-card-layout branch August 1, 2026 20:16
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.

Expected-vs-actual card: no horizontal scroll, one 30d window, and combined Monero+XvB on both sides

1 participant