Skip to content

Release v1.13.0#751

Merged
VijitSingh97 merged 9 commits into
mainfrom
develop
Jul 23, 2026
Merged

Release v1.13.0#751
VijitSingh97 merged 9 commits into
mainfrom
develop

Conversation

@VijitSingh97

Copy link
Copy Markdown
Collaborator

Release merge for v1.13.0 (tag commit == develop HEAD, nothing landed post-cut).

v1.13.0: mine cart train + payouts timeline exposure, calculator Day/Month/Year standardization, dashboard panel UX round (#748, #749, #750). Cut on gouda via release.sh (full gate + staging smoke + digest promotion); targeted e2e on the RC passed 386/386 with a borrowed rig.

🤖 Generated with Claude Code

VijitSingh97 and others added 9 commits July 22, 2026 08:20
back-merge: main → develop after v1.12.0
Two Tor-timing flakes hit 2 of 4 runs during the v1.12.0 cut; neither was a
code defect (same ref passed 374/0 and 380/0 on the clean runs):

- pool type: after a sidechain switch the dashboard's peer-port classifier can
  keep reporting the PRE-switch pool — determinate, wrong, and transient — and
  both assert_scenario and assert_pool_switched hard-failed it as a "render
  bug". New shared assert_pool_type consults the ground truth the harness never
  checked: the rendered P2POOL_FLAGS (--mini/--nano; main carries neither).
  Correct flags -> classifier-lag WARN (same class as Unknown, #454/#687);
  wrong flags -> FAIL. The mismatch path now verifies actual flags, so the
  check is stronger than before, not looser.

- tari synced (required): every per-scenario restart sends Tari back through
  "discovering the target height" ('loading'), which can outlast
  wait_tari_synced over Tor; the bare assert_eq then fired on an in-progress
  state — the same cold-read anti-pattern the #687 comment describes. New
  assert_tari_synced_required earns its tolerance: "done" passes and records
  TARI_SEEN_DONE; loading/syncing AFTER that proof warns as re-discovery lag;
  a Tari that never syncs still fails the gate.

Both helpers live in lib.sh so the selftest covers every branch (stubbed
emitters; 148/0): flags ground truth per pool, all four pool verdicts, and the
earned-tolerance matrix including first-look-loading -> FAIL.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…erdicts

fix(e2e): ground-truth pool verdict + earned Tari lag tolerance (#746)
…el UX round

Calculator: every earnings tab now presents its estimate in one Day/Month/
Year table (EstTable) — coin column in accent, a ≈-fiat column once the price
is known, one shared precision per triplet so rows align. Tari gains its
month/year spans (computed but never shown), XvB gains the published current-
tier reward as the same table, Energy grows Revenue (est.) / Power Cost / Net
columns so the gross the net starts from is no longer implicit. One judgment
colour: net green in profit, red in loss.

Mine cart train: a pixel-art strip under the hero band retelling the chart
window as cargo — one cart per interval, token coins for what landed (orange
ɱ per share interval, a pair for a found block, purple gem for a confirmed
Tari payout, blue X for an XvB raffle win), tipple, sleeping cat, drifting
clouds. Decorative and quiet: bob/drip animation only, fully static under
prefers-reduced-motion, hidden with no history. Server side, build_payouts
exposes confirmed payouts per chain as {x: ms, amount: atomic} timeline
points (gated on the payout-confirmation flags; txids never ship).

Panel UX: progressive disclosure on the stat-heavy cards (headline stats
up front, "Show all" for the rest), value-ordered advanced grid with Your
Stack / The Wider Pool section labels, workers-table tabular numerics +
row hover + status colour scoped to the name cell, hero headline accent,
chart active-chips green→accent (green stays "healthy"), topology zone
tints + marching-ants on live routes, Total Hashes (Node)/(Pool)
disambiguation.

Also: fixture generator pinned get_xvb_standby (rotted at #249 — unpinned
MagicMock is not serializable) and the fixture regenerated to the current
build_state contract.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…etrics-standardize-64e342

Dashboard UX round: standardized calculator metrics, mine cart train, panel cleanup
…ontradictions, changelog

Tests: the #381 confirmed-payouts block had no component coverage at all
(introduced by #739, stacked on by #748, untested both times) — one render
test now pins both tabs, the summary-key wiring, the estimates-then-
confirmed order, and the disabled default. The build_state payouts test
gains the gate-agreement assertion (timeline and card summaries read the
same flags in the same request). Two windowed-math tests deleted — they
re-derived what TestConfirmedPayoutsSummary already proves, against the
test-once tier model.

Docs: the mine-cart section claimed the chart shows everything the train
shows — false for the Tari gem coin, which is deliberately chart-exclusive;
both sections now cross-reference the split honestly. The "no chart reads
them yet" claim narrowed to disk_growth (blocks feeds the train, xvb_history
the donation overlay). CHANGELOG gains the missing #748 entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Post-#748 gap sweep: confirmed-block coverage, doc contradictions, changelog
VERSION + dashboard pyproject to 1.13.0, uv.lock regenerated, CHANGELOG
[Unreleased] rolled to [1.13.0] - 2026-07-22 (mine cart train + calculator
standardization + panel round, #748/#749).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@VijitSingh97
VijitSingh97 merged commit 80c0156 into main Jul 23, 2026
32 checks passed
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