Repository navigation
DO NOT MERGE without coordinator GO: 3.x.x: version 3.1.0 and its release notes - #782
Merged
Merged
Conversation
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>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
djh58
self-requested a review
October 26, 2026 19:35
djh58
approved these changes
Oct 26, 2026
This was referenced Oct 27, 2026
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>
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.
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: the3.x.xhead (442e2c70, which is 3.1.0-rc.1a862e251plus #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.1touches only the two lockfiles,Cargo.toml,VERSION,README.mdand docs.442e2c70(already on3.x.x)Changes
tokio (
adcf74da), as part 1 of main's main: update tokio for RUSTSEC-2026-0386, and keep the block-proof acknowledgement bound from dropping a disposition poll's connection #781 (b9579c67):cargo update -p tokio --precise 1.53.3in the root and fuzz directories. As on main: update tokio for RUSTSEC-2026-0386, and keep the block-proof acknowledgement bound from dropping a disposition poll's connection #781, cargo also moved thewindows-sysedges of errno, quinn-udp, rustix and tempfile from 0.61.2 to 0.52.0. Those edits were dropped, so each lockfile changes only tokio's version and checksum, the same hunks main: update tokio for RUSTSEC-2026-0386, and keep the block-proof acknowledgement bound from dropping a disposition poll's connection #781 has. main: update tokio for RUSTSEC-2026-0386, and keep the block-proof acknowledgement bound from dropping a disposition poll's connection #781's disposition-poll change (part 2) is not included: it changes runtime behaviour and goes in the next release.Version:
VERSION,[workspace.package].versionand the workspace-member entries of bothCargo.lockfiles move to3.1.0(6 root and 3 fuzz entries), the same lines DO NOT MERGE without coordinator GO: 3.x.x: version 3.1.0-rc.1 and its release notes #774 bumped.doc/release-notes-3.1.0.md:The notes point to the rc.1 notes for the dual writer, its settings, migrations and known limits, as the rc notes chain to each other.
Production wording: the README banner, the development-line note's Status, release identity, Not done yet and Upgrade and rollback sections, and the migration guide now say
3.x.xis the production line, to be deployed from thev3.1.0tag. The wording follows the3.0.xREADME and 3.0.x: version 3.0.0 and its release notes (#557) #776. The development-line note, the migration guide anddocs/prism-ledger-ops.mdlink the 3.0.0 notes' D5 boundary atblob/v3.0.0/, because this branch'sdoc/release-notes-3.0.0.mdis still the pre-release D5 contract. That file is left as it is (out of scope); themainconsolidation can settle it.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 --lockedpasses 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.xfailsadvisorieson RUSTSEC-2026-0386.cargo check --locked --workspace --all-targetscompiles.blob/<ref>/link at its ref./code-review mediumrounds 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 on3.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:Before merging and tagging
https://github.com/Qbit-Org/qbit-mining-bootstrap/blob/v3.1.0/...(the notes' links are relative, as in the rest ofdoc/).throughput-400k-window-2fe-async-3-blocksfail on 3.0.0's tree with 3.x.x: a share under a tip-change lease is refused 'commit gate closed' when the authority try_read meets a writer, which can drop a valid share's credit and fires PrismShareAppendFailures #716's refusal. rc.1's full run on DO NOT MERGE without coordinator GO: 3.x.x: version 3.1.0-rc.1 and its release notes #774 passed. If this PR's run fails there, it is a known issue, not this diff. The tag promotes this PR's run on a tree match (3.x.x: production-window matrix (L3) on the version bump, release-candidate, v* tags and weekly (#550) #608).run-dual-writer-e2elabel, which ran the full dual-writer matrix on DO NOT MERGE without coordinator GO: 3.x.x: version 3.1.0-rc.1 and its release notes #774, is not set here. Add it if the release evidence should include the matrix.mainconsolidation PR.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.