Release v1.13.0#751
Merged
Merged
Conversation
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
Release prep: v1.13.0
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.
Release merge for v1.13.0 (tag commit == develop HEAD, nothing landed post-cut).
v1.13.0: mine cart train +
payoutstimeline 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