Release v1.18.0 - #945
Merged
Merged
Conversation
chore: back-merge main into develop after v1.17.0
The expected-vs-actual card folded XvB's published per-tier estimate into expected at face value, and the tier calculator's Net/yr did the same — on a production Whale box the card read 54% while the P2Pool leg ran at 120%, and the calculator showed +2.97 XMR/yr for a tier measured at about -1.8. The winners file we already mirror over Tor carries the qualifier count per round, so both surfaces can be honest without new egress or re-deriving reward_calc: - parse_round_stats aggregates every round (one fetch, second parse): type frequencies, players averages, span. - xvb_expected_wins_day forecasts wins/day for the held tier (verified against production: predicted 0.84/day, measured 0.84/day) — fills the wins row's expected cell. - xvb_realization measures what wins actually paid (confirmed payouts within 2h of each settled win vs face value per win); the earnings card's XvB leg and the calculator's Net/yr scale by it when >=5 wins are measurable, and say so; face value stands labeled as an upper bound otherwise. - The calculator shows each tier's draw (win odds + qualifier count), which also makes a single-qualifier tier's fragility self-evident. Closes #866. Closes #872. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nomics Honest XvB economics: measured realization + win odds on both earnings surfaces
…bled Three operator-reported gaps from the first live look at the honest-economics card (develop @ 167891c on the bench): - The expected-wins forecast dashed out on a box holding no tier yet — exactly the operator weighing whether donating is worth enabling. It now speaks to the TARGET tier until one is held (xvb_forecast_tier_key). - A disabled XvB still claimed five Overview tiles, two hero KPIs, a header split line and the whole Donation Stats card — all zeros and Nones. One mode badge says XvB is off; everything else stands down with it. - Grid rows are as tall as their tallest card, and the raffle-wins log made the XvB card tallest by far — every neighbour trailed white space. The log now scrolls inside a capped list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…arget-tier XvB follow-ups: target-tier win forecast, stand-down when disabled, wins-log height cap
The tier calculator's unmeasured state showed XvB's face value labeled as an
upper bound — honest, but unanswerable for the question the panel exists for
("is enabling worth it?"). Everything except one factor IS computable on any
box: cost (linear P2Pool model) and draw odds (winners feed) are pure math;
per-win collection is not derivable from outside XvB, but it is BOUNDED by
measurement. Ship that bound:
- XVB_REALIZATION_PRIOR = (0.24, 0.42), from baseline-subtracted 6h post-win
payout-stream measurements on a production wallet across two regimes: 24%
with the credited average riding the tier threshold (terminated rounds),
42% with comfortable margin.
- Unmeasured tiers emit assumed_reward_year_range; the panel's Net becomes a
range labeled (estimated) — red only when even the optimistic end loses,
green only when even the pessimistic end profits. Measured supersedes it.
- Accuracy fixes the stream measurement demanded: the local-measurement
attribution window widens 2h -> 6h (the stream is front-loaded but runs
~6h), and the box's own linear P2Pool baseline over the windowed hours is
subtracted so ordinary payouts can't inflate the factor.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Estimated XvB net band: probabilities everywhere, measured collection bound
Bumps the docker group with 1 update in the /build/monero directory: ubuntu. Bumps the docker group with 1 update in the /build/p2pool directory: ubuntu. Bumps the docker group with 1 update in the /build/xmrig-proxy directory: ubuntu. Updates `ubuntu` from `4fbb8e6` to `561618e` Updates `ubuntu` from `4fbb8e6` to `561618e` Updates `ubuntu` from `4fbb8e6` to `561618e` --- updated-dependencies: - dependency-name: ubuntu dependency-version: '24.04' dependency-type: direct:production dependency-group: docker - dependency-name: ubuntu dependency-version: '24.04' dependency-type: direct:production dependency-group: docker - dependency-name: ubuntu dependency-version: '24.04' dependency-type: direct:production dependency-group: docker ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the python group with 3 updates in the /build/dashboard directory: [diff-cover](https://github.com/Bachmann1234/diff-cover), [hypothesis](https://github.com/HypothesisWorks/hypothesis) and [ruff](https://github.com/astral-sh/ruff). Updates `diff-cover` from 10.4.1 to 10.5.0 - [Release notes](https://github.com/Bachmann1234/diff-cover/releases) - [Changelog](https://github.com/Bachmann1234/diff_cover/blob/main/CHANGELOG) - [Commits](Bachmann1234/diff_cover@v10.4.1...v10.5.0) Updates `hypothesis` from 6.163.0 to 6.165.2 - [Release notes](https://github.com/HypothesisWorks/hypothesis/releases) - [Commits](HypothesisWorks/hypothesis@v6.163.0...v6.165.2) Updates `ruff` from 0.16.0 to 0.16.2 - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.16.0...0.16.2) --- updated-dependencies: - dependency-name: diff-cover dependency-version: 10.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python - dependency-name: hypothesis dependency-version: 6.165.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: python - dependency-name: ruff dependency-version: 0.16.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: python ... Signed-off-by: dependabot[bot] <support@github.com>
Replaces the per-tier comparison dropdown with a single decision table — the analytical tool a miner chooses a direction with. Every donor tier on one row: draw odds from the live winners feed, cost at the box's own rate, XvB's published figure shown AS XvB's (face value, never blended), the study estimate beside it, and a coloured net verdict. Unsustainable tiers stay visible but flagged with the net withheld. The study estimate is the published figure x the measured delivery band: across 25 audited won rounds, verified on-chain across all three P2Pool sidechains (Jun-Aug 2026), winners received 32% of the advertised prize work (bootstrap 95% CI 27-38%), regardless of donation margin — a controlled experiment pinning the credited margin at 2.1-2.5x the round minimum measured a +2pp margin effect (zero). A 14-winner / 83-slot public-winners crawl corroborates (per-winner median ~44%, pooled 48% with a known upward bias; no winner near face value). Delivery equals realization because payout of delivered work measured complete. XVB_REALIZATION_PRIOR (0.27, 0.38) supersedes the retracted (0.24, 0.42) two-era payout band. A wallet's own measured wins still supersede the prior once >=5 exist (column flips to "Yours (N% x M wins)"). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…), restore spliced test, add colour/stale coverage The closing adversarial pass caught: a stale-dump glob in the study that had manufactured a false zero round (endpoint recomputed: all-25 delivery 33.1% [28, 39], clean-8 37.6% [28, 53], margin effect +5pp with overlapping CIs); the band, tooltip and docs now carry those figures with single-wallet-audit + crawl-corroboration wording. Also restores the CadenceCard test an editing splice deleted, adds green/zero-spanning verdict fixtures and a stale-estimates degradation test, and fixes two views docstrings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The complete study record — IMRAD paper with its full adversarial corrections trail, figures, every analysis script, checksummed archives of all external sources, and the public winners-feed schedule snapshots. Wallet-correlating raw data (payout records, experiment log, per-wallet observer dumps, crawl results) is deliberately withheld; PAPER.md §6 documents the split, and the method reproduces for any wallet from public data alone. Lint carve-outs for research/: verbatim records and archived third-party sources are exempt from house-voice, markdownlint list styles, shfmt and ruff — they must stay byte-identical to the archived originals. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…/dashboard/python-8d2d61cae0 build(deps): bump the python group across 1 directory with 3 updates
…uild/monero/docker-81302365dd build(deps): bump the docker group across 3 directories with 1 update
…elivery-band XvB decision table: measured study estimates beside XvB's published figures
…tudy Publish the XvB delivery study (sanitized public record)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…); docs corrections; simplifications The dwell catch-up compared the credited 1h average against the raw tier target, so an explicit target the fleet cannot sustain read as permanently under-tier, ended every p2pool dwell at its first check tick, and pinned the actuated donation near 100% of allowed time — the configured cap never bound (measured live: ~94% routed under a 0.65 cap). The catch-up now chases min(target, stable_hr x max_donation_fraction): nothing to catch up to beyond what the cap allows. Three-case regression test. Also: twenty verified documentation corrections from the project gap review (release branch mechanics + withdrawal procedure + honest staging- smoke description + stage-2 gate value; stale testing-strategy/guide passages; service counts; config reference completeness; study cross- links; restore-path and host-port hazards), and two lean-downs from the whole-tree over-engineering audit (dead demo block; coin formatter consolidation). Closes #898. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 false positives — hex example IDs and page-chrome tokens inside checksummed third-party page archives that must stay byte-identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CI scans full history, where the archives exist at both research/... and docs/research/...; verified clean in git-history mode locally. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tion Project hygiene: #898 donation-cap fix, gap-review doc corrections, research under docs/, lean-downs
…onical checkout The canonical checkout's config.json/.env can drift far behind what's actually deployed (a release bumps config in the bundle dir, not in CANONICAL_DIR), so seeding the e2e checkout from canonical silently exercised and deployed a months-old config. Prefer the live bundle at the "current" symlink sibling of CANONICAL_DIR when it resolves, fall back to canonical when there's no live bundle, and warn loudly on either the fallback or a top-level-key mismatch between the two. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
e2e: seed the checkout from the live release bundle, not the stale canonical config
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e hides with XvB off) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
release: v1.18.0 prep — version bump and changelog
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.
Promote develop to main for the v1.18.0 cut: XvB decision table with measured study estimates (#900), XvB stand-down when disabled, the delivery-study record under docs/research/, the donation-cap catch-up fix (#898), e2e live-bundle seeding (#880), repo reorganization (#907), and Dependabot python/docker bumps.
Pre-cut targeted e2e ran green on this product state (gouda + miner-1, 0 failures). Merge as a REAL merge (never squash) so main stays an ancestor of develop.
🤖 Generated with Claude Code