Skip to content

DO NOT MERGE without coordinator GO: 3.x.x: version 3.1.0 and its release notes - #782

Merged
RobertClarke merged 5 commits into
3.x.xfrom
RobertClarke/v3.1.0
Oct 26, 2026
Merged

RobertClarke merged 5 commits into
3.x.xfrom
RobertClarke/v3.1.0

Conversation

@RobertClarke

@RobertClarke RobertClarke commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Version 3.1.0 and its release notes, cut on 3.x.x. The coordinator gave the GO on 2026-10-26 for this scope: the 3.x.x head (442e2c70, which is 3.1.0-rc.1 a862e251 plus #777), the tokio update for RUSTSEC-2026-0386, the version bump, and the notes. Nothing else.

What 3.1.0 is

3.1.0-rc.1 plus two dependency updates. Since rc.1 there is no runtime code, setting or migration change: git diff v3.1.0-rc.1 touches only the two lockfiles, Cargo.toml, VERSION, README.md and docs.

Change Crates Advisories
#777 442e2c70 (already on 3.x.x) rustls-webpki 0.103.15 → 0.103.16 and webpki-roots 1.0.9 → 1.0.10 (both lockfiles); rustls 0.23.45 → 0.23.46 (fuzz lockfile only) RUSTSEC-2026-0382, -0381, -0346, -0347, -0348, -0349
this PR tokio 1.53.1 → 1.53.3 (both lockfiles) RUSTSEC-2026-0386

Changes

Checked locally

  • python3 scripts/check_version_skew.py: VERSION 3.1.0 matches every workspace crate: qbit-pool-builder, qbit-prism, qbit-prism-dual-sim, qbit-prism-load, qbit-prism-server, qbit-prism-test-gate.
  • python3 scripts/check_prism_settings.py: PRISM setting inventories and operator guidance agree.
  • python3 scripts/check_toolchain_pin.py: Rust 1.98.1 is pinned consistently across rust-toolchain.toml, Cargo.toml rust-version, every crate, lab/prism/Dockerfile.
  • cargo metadata --locked passes for the root and fuzz workspaces.
  • cargo deny --locked check (cargo-deny 0.20.2): advisories ok, bans ok, licenses ok, sources ok. As a control, origin/3.x.x fails advisories on RUSTSEC-2026-0386.
  • cargo check --locked --workspace --all-targets compiles.
  • Every relative link and anchor in the changed Markdown files resolves, and so does every blob/<ref>/ link at its ref.
  • A read-only agent checked every claim in the notes against the tree, the tags and the cited PRs and issues. Its findings were fixed, except that the mainnet dual-writer sentence stays as the coordinator asked. Two local /code-review medium rounds followed, and their findings were fixed: wording and accuracy in the notes, the dev-line note and the migration guide. One was left as it is: the development-line note keeps its section structure ("Not done yet" and so on), as 3.0.x: version 3.0.0 and its release notes (#557) #776 did on 3.0.x.

The v3.1.0 tag message

Robert signs the tag; this PR creates none. The message follows v3.1.0-rc.1's style:

qbit-mining-bootstrap 3.1.0

The 3.1.0 release: 3.1.0-rc.1 plus two dependency updates for RustSec
advisories, rustls-webpki, webpki-roots and the fuzz lockfile's rustls
(#777: RUSTSEC-2026-0381, RUSTSEC-2026-0382 and RUSTSEC-2026-0346 to
-0349), and tokio 1.53.3 (RUSTSEC-2026-0386), with no runtime change
since rc.1. Against 3.0.0 it adds the 3.1 dual writer: node identity and
peer sync (#766), per-node window cuts (#768), carry owner and peer
settlement (#767), dual-writer readiness and Stratum gating (#769), the
dual-writer E2E simulation and CI (#763), and the proof that rc.6 keeps
serving while 3.1 pre-migrates (#773). The dual writer is off by
default; with PRISM_DUAL_WRITER unset, a frontend behaves as 3.0 does.
Every start requires migrations 027, 028 and 031; 031 builds its index
online. From 3.1.0-rc.1 the upgrade is a binary swap. Release notes:
doc/release-notes-3.1.0.md.

Before merging and tagging

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

RobertClarke and others added 5 commits October 26, 2026 14:57
VERSION, the workspace version and both lockfiles' workspace members move
to 3.1.0. tokio moves from 1.53.1 to 1.53.3, its first fixed patch
release for RUSTSEC-2026-0386, in the root and fuzz lockfiles, as main
took it in #781. cargo update -p tokio --precise 1.53.3 also moved the
windows-sys edges of four unrelated crates to 0.52.0, so, as in #781,
only tokio's version and checksum change. Nothing in the workspace uses
AsyncFd.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
doc/release-notes-3.1.0.md covers the changes since 3.1.0-rc.1 (#777's
TLS updates and the tokio update), the upgrade from rc.1 (a binary swap)
and from 3.0.0 or 3.0.0-rc.6 (#773's pre-migrate, the binary, then the
optional dual-writer cutover), and the known issues carried from rc.1
plus #779's L3 failures and the acknowledgement bound's connection drop
that main fixes in #781. The README banner, the development-line note
and the migration guide now say 3.x.x is the production line, deployed
from the v3.1.0 tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The migration guide and ledger operations cite the released 3.0.0 notes'
D5 boundary at v3.0.0, not this branch's pre-release copy. The
development-line note's header no longer calls the line "not a release".
The 3.1.0 notes say a dual-writer-off frontend serves as 3.0's does once
the migrations are applied, tell a 2.0.x upgrade that #765's guard is not
needed, and list the required prism-dual-writer lane and rc.1's evidence
set under Verification.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The #779 known issue counts the async preset's failed repeats (four of
six) and names the sync preset rather than a repeat's job. The cutover
step names node-identity repersonalise and defers the cutover itself to
the pair's runbook, as rc.1's notes do. Verification says docs changed
since rc.1 too. The development-line note says 3.0.x is not an ancestor
of 3.1.0, and the migration guide no longer implies the 3.0.0
candidates were a supported production upgrade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T19:06:18.171337Z 9b102dd PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@RobertClarke RobertClarke added the run-dual-writer-e2e Run the 3.1 dual-writer scenario matrix on this PR (prism-load-nightly.yml) label Oct 26, 2026
@Qbit-Org Qbit-Org deleted a comment from qbit-reviewer Bot Oct 26, 2026
@djh58
djh58 self-requested a review October 26, 2026 19:35
@RobertClarke
RobertClarke merged commit 59194d0 into 3.x.x Oct 26, 2026
89 of 92 checks passed
kiwidream added a commit that referenced this pull request Oct 28, 2026
VERSION, the workspace version and both lockfiles' workspace members move
to 3.1.1, the same lines #782 bumped. doc/release-notes-3.1.1.md covers
every change on 3.x.x since v3.1.0 (#786 to #808); the operator-facing
changes: migration 032, the payout-revision listener's connection, the
alert rule UIDs and gating; the upgrade from 3.1.0 (migrate while 3.1.0
serves, then replace the binaries one at a time), from 3.0.0 and earlier;
the rollback to 3.1.0; and the known issues. The README banner, the
development-line note and docs/releasing.md's current-release line name
3.1.1 and the v3.1.1 tag.

The migration guide no longer says a 2.x audit-bundle.v2 body answers 500
until 3.x can verify it: since #809 the public route verifies it with the
parser and canonical-digest check import-audits uses, and serves it.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-dual-writer-e2e Run the 3.1 dual-writer scenario matrix on this PR (prism-load-nightly.yml)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants