Skip to content

Release v1.18.0 - #945

Merged
VijitSingh97 merged 32 commits into
mainfrom
develop
Aug 14, 2026
Merged

Release v1.18.0#945
VijitSingh97 merged 32 commits into
mainfrom
develop

Conversation

@VijitSingh97

Copy link
Copy Markdown
Collaborator

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

VijitSingh97 and others added 30 commits August 2, 2026 09:30
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>
VijitSingh97 and others added 2 commits August 13, 2026 23:17
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
release: v1.18.0 prep — version bump and changelog
@VijitSingh97
VijitSingh97 merged commit e8dbddb into main Aug 14, 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