Repository navigation
Conversation
This was referenced Sep 25, 2026
kiwidream
force-pushed
the
kiwidream/1.0.1-rc1-prep
branch
from
October 22, 2026 18:38
4c6b309 to
2c05917
Compare
kiwidream
marked this pull request as ready for review
October 22, 2026 18:39
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2c05917252
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4 tasks done
6 of 15 tasks
djh58
added a commit
that referenced
this pull request
Oct 27, 2026
* ci: check mainnet publication posture for 1.1.0 The "mainnet publication posture" job checks that the source being released keeps the mainnet launch posture: the AuxPoW chain ID, the genesis and ASERT launch data, the mainnet bootstrap, and the default-mainnet build. The "Classify release target" step only set mainnet_publish_gate_required for target branch 1.0.0, so pull requests, merge-queue runs and pushes into 1.1.0, the next mainnet release line, skipped the job and the Core Checks Gate never asked for its result. Set the output for 1.1.0 as well, and keep 1.0.0. The job's `if:` and the Core Checks Gate both read this output, so for source and release-policy changes into 1.1.0 the job now runs and a failure blocks the gate. Pin both branches in the existing workflow contract test, and update the release process, which names the branches the job runs for. Refs #222 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * build: bump version to v1.1.0-rc1 Set CLIENT_VERSION_MINOR to 1, CLIENT_VERSION_BUILD to 0 and CLIENT_VERSION_RC to 1 so the source identifies as v1.1.0-rc1, the first release candidate of v1.1.0, the release after v1.0.1 that adds the hybrid post-quantum v2 transport (#184). CLIENT_VERSION_IS_RELEASE stays true: 1.1.0 is a release line, so candidate binaries carry no commit suffix, as for v1.0.0 and the v1.0.1 candidates. CMake appends "-rc1" to CLIENT_VERSION_STRING, so every binary reports v1.1.0-rc1, the user agent becomes /qbit:1.1.0-rc1/, and the Windows installer metadata and the RPC docs manifest's project version derive from the same string. The Guix archive name comes from the v1.1.0-rc1 tag itself. Regenerate the seven manual pages with contrib/devtools/gen-manpages.py (help2man 1.49.3) from a build of this tree with the GUI, the wallet and every tool. Besides the version and date lines, qbitd.1 and qbit-qt.1 gain -v2pqtransport, which #184 added as a connection option. The other options #184 added (-mlkemportable and the regtest-only -test values) are debug options that only -help-debug lists, so the pages don't show them. util_tests/test_FormatSubVersion expected the "Test" client name to format as CLIENT_VERSION_STRING, which fails for every version with a release-candidate suffix: FormatSubVersion uses that string only for the qbit user agent and formats any other name numerically. Apply the same fix as the v1.0.1-rc1 preparation (#181), byte for byte, so that merging 1.x.x into 1.1.0 brings an identical change: expect the numeric form built from the version components. The qbit user-agent checks on the next lines still cover CLIENT_VERSION_STRING. Refs #222 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * doc: draft v1.1.0 release notes Add doc/release-notes-1.1.0.md in the structure of the v1.0.1 notes (#181). It covers every change merged to 1.1.0 since it branched from 1.x.x at 45e9e72: the hybrid post-quantum v2 transport, with the parts and fixes merged through #233 (#223 to #254), and #249. Behavior changes come first: the hybrid transport is on by default, how to switch it off, the numeric -v2pqtransport value, the single I2P session-creation limit and qbit-photon's OpenSSL configuration loading. A compatibility table states how v1.1.0 nodes connect with v1.0.0 and v1.0.1 nodes and over v1, in both directions, as p2p_v2_previous_release.py and rpc_pqtransport.py test it. Known limitations summarize the release fuzz campaign and the limits its report on #222 states, the basis of the load-shedding threshold, the portable ML-KEM code on AArch64 Linux, and the unsigned-platform waiver (#70). The only performance figures are the handshake benchmark results published in #240. Fold in and delete the 1.1.0 fragments doc/release-notes-223.md, -240.md and -249.md, and point the specification's and the operator guide's release-note links at the new notes' hybrid transport section. The v1.0.0 and v1.0.1 fragments are left alone. The notes say that v1.1.0 contains every change in v1.0.1. That holds once 1.x.x is merged into 1.1.0 after v1.0.1 ships; the short "Changes in v1.0.1" section then gains a link to the v1.0.1 notes. Refs #222 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * net: say how the load-shedding threshold was set The comment on DEFAULT_PQ_SHED_THRESHOLD_PER_S said that the release gate's flood measurement (#222, R3) would set its final value. R3 was settled with CPU benchmarks of the handshake instead, and the threshold stays at 1,000 offers per second, as the v1.1.0 release notes say. Say so, so the comment no longer points at a change that is not coming. Refs #222 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * doc: cite the new fuzz seeds in the v1.1.0 notes #255 merged into 1.1.0 after the notes were drafted. It adds generated seeds to the required fuzz corpus for the hybrid transport's targets, so the test section now cites it alongside the earlier seed changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Cover every pull request merged to 1.x.x since the signed v1.0.0 tag, through #252. List the behavior changes first: the -fallbackfee default (#151), fee-only send entries (#150), and the encryptwallet overlap error code moving from -16 to -15 (#183). Record the release's known limitations: the unsigned-platform waiver (#70), the depth of the fuzz evidence (#173), and scheduled-workflow deployment (#152, #158). The required P2MR v1 conformance statement names the signed tag target and the oracle report digest, so the in-tree notes point to the release page, and the publish-time notes file carries the exact statement. Fold the #150 and #151 fragments into these notes and remove them. Refs #174 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Set CLIENT_VERSION_BUILD to 1 so the source identifies as v1.0.1, the maintenance release proposed in #174. It ships without a release candidate, so CLIENT_VERSION_RC stays 0. CLIENT_VERSION_IS_RELEASE stays true: 1.x.x is the release line, so its binaries carry no commit suffix, as for v1.0.0. CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR and CLIENT_VERSION_PHASE are unchanged. CLIENT_VERSION_STRING becomes 1.0.1, so every binary reports v1.0.1, the user agent is /qbit:1.0.1/, the Windows installer metadata and the RPC docs manifest derive from the same string, and Guix and the release validators derive 1.0.1 from a v1.0.1 tag. Regenerate the manual pages from the built binaries with contrib/devtools/gen-manpages.py (help2man 1.49.3). Only the version and date lines change. util_tests/test_FormatSubVersion expected the "Test" client name to format as CLIENT_VERSION_STRING. FormatSubVersion uses that string only for the qbit user agent and formats any other name numerically, so the check holds only while the version has no phase or release-candidate suffix. Expect the numeric form built from the version components, which holds for every version. The qbit user-agent checks on the next lines still cover CLIENT_VERSION_STRING. No other tracked file carries the release version. The README and doc mentions of v1.0.0 describe the launch source, and the 1.0.0 entries in the workflows are branch names, so they are left alone. Refs #174 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kiwidream
force-pushed
the
kiwidream/1.0.1-rc1-prep
branch
from
October 27, 2026 19:02
5f20d00 to
fb45d18
Compare
7 of 30 tasks
5 of 9 tasks
This was referenced Oct 30, 2026
This was referenced Oct 30, 2026
This was referenced Oct 30, 2026
6 of 9 tasks
This was referenced Oct 30, 2026
This branch has not been deployed
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.
Summary
This PR prepares v1.0.1 from
1.x.xfor #174. v1.0.1 ships directly, without a release candidate. The plan change is recorded in #174.CLIENT_VERSION_BUILDis now1.CLIENT_VERSION_RCstays0andCLIENT_VERSION_IS_RELEASEstaystrue, so every binary reportsv1.0.1and the user agent is/qbit:1.0.1/.util_tests/test_FormatSubVersionexpectation is fixed. It compared againstCLIENT_VERSION_STRING, butFormatSubVersionuses that string only forUA_NAME. The old check therefore failed for any version with a phase or-rcsuffix.doc/release-notes-1.0.1.md(0e92e4f):1.x.xsincev1.0.0, through doc: fix pipe rendering and tighten P2MR v1 consensus profile #252 (4fb9dbeac3). The branch is rebased onto that commit.-fallbackfeedefault (wallet: default -fallbackfee to the minimum relay fee #151), fee-onlysendentries (wallet: show fee-only change-only self-transfers #150), and theencryptwalletoverlap error code moving from-16to-15(wallet: close races around CWallet::EncryptWallet #183).release-notes-150.mdandrelease-notes-151.mdare folded in and removed.When rc1 was dropped, the branch history was rewritten into these two commits. The earlier review rounds remain in this PR's conversation.
Maintainer checklist (before tagging and publishing)
The publisher only checks that the notes file is UTF-8, so these gates live here and in #174.
1.x.xuntilv1.0.1is tagged. doc: fix pipe rendering and tighten P2MR v1 consensus profile #252 merged during the earlier freeze and is now in the notes. Re-check1.x.xbefore tagging.--allow-unsigned-platform-artifacts, without--allow-codesigning-artifacts.v*tags can't be moved or deleted, so this replaces the RC's role.FORCE_VERSION=1.0.1. The artifacts are then namedqbit-1.0.1-*, exactly as a tagged build names them.SHA256SUMSmatch the tested artifacts.v1.0.1tag on the merge commit.doc/release-trust-1.0.1.mdto1.x.x, followingdoc/release-trust-1.0.0.md. Its merge commit becomes thetrusted_release_ref.1.x.xcontains every listed publisher, validator and key-policy path, including the release: fail closed when the release asset list cannot be read #170 publisher fix.keys.jsonis unchanged (f04ae262…,qbit-release-keys-mainnet-000002).70fea84f5bcan't be reused: it lacks release: fail closed when the release asset list cannot be read #170, and the new tag target is not its ancestor.--release-line mainnet,--notes-filepointing to the publish-time copy,--no-prerelease,--make-latest true,--allow-unsigned-platform-artifacts, and the three--p2mr-v1-*inputs.make-latest=false, which would leavev1.0.0marked as the latest release.Testing
Built locally.
Ran focused unit or functional tests for the changed area.
Ran lint or formatting checks relevant to this change.
Not run. Reason:
Version strings:
qbit,qbitd,qbit-cli,qbit-tx,qbit-util,qbit-walletandqbit-qtall printv1.0.1. Therpcdocs-jsonmanifest and build metadata reportproject_versionv1.0.1.Tests:
test_qbit --run_test=util_testspasses.interface_bitcoin_cli,feature_help,feature_uacommentandrpc_net(v1 and v2 transport) pass.ci/releaseunit tests pass: 228 tests.verify_mainnet_release_posturepasses against a local-only scratchv1.0.1tag on fb45d18.Lints:
lint-qbit-public-docs,lint-filesandgit diff --checkpass.doc: fix pipe rendering and tighten P2MR v1 consensus profile #252 check: before the notes repeated doc: fix pipe rendering and tighten P2MR v1 consensus profile #252's "no normative changes" claim, a mechanical comparison confirmed that every MUST, MUST NOT and MAY statement, every numeric value and every upper-case identifier in the profile is preserved.
Not run: codespell,
test_qbit-qtand the full suites; CI covers those.Notes for reviewers:
/qbit:1.0.1/.core-checks.yml:122runs the mainnet-posture job only for target branch1.0.0, so it never runs for1.x.xPRs. The local posture check above covers it for this change.Target Branch
mainor a maintainer-requested release branch such as0.1.x.Targets
1.x.x.Risk / Review Notes
Notes: this changes release metadata only: the version and user agent, man pages and release notes. There are no code-behavior changes beyond the test expectation.
Docs / Process Impact
Choose exactly one:
Refs #174.
🤖 Generated with Claude Code