RB
← All projectsRust Bitcoin

rust-bitcoin

Rust library for Bitcoin data structures, serialization, consensus encoding, and scripts.

BitcoinCryptographic librariesNormal
Repository coverage

2070 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

459security candidates448second-pass queue1033AI analyses
187commits · 30 days
403commits · 60 days
1283commits · 180 days
2062commits · 365 days
Backfill bands
Aug 5 → Feb 6787 seen32 candidatesComplete
Feb 6 → Jun 6878 seen53 candidatesComplete
Jun 6 → Jul 6211 seen15 candidatesComplete
Jul 6 → Aug 5184 seen2 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

64/100 average clarity
311Strong · 80–100
1054Adequate · 60–79
555Thin · 40–59
150Opaque · 0–39
20security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Mitchell Bagot640192359068
Tobin C. Harding40965156063
jrakibi944963068
Nick Johnson18920112059
Andrew Poelstra512035075
Jamil Lambert, PhD1141849061
Fmt Bot311422045
Trevor Arjeski111111069
Shing Him Ng31724056
Ismail Daif22612050
satsfy (Renato Britto)17612066
Martin Habovstiak27512069
Analysis record

Published AI watches

Last scanned 53 minutes ago

Informational 15 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6671: units: reword docs from height to count in relative locktime

This commit only changes documentation comments and variable names in the rust-bitcoin library. It rewords references to 'block height' as 'block count' for relative locktime, because a relative locktime measures elapsed blocks since a coi…

6ea4ff92by Andrew Poelstra+20−172 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6670: ci: fix labeller permissions

This is a routine GitHub Actions workflow fix. The change gives the automated PR labeler workflow permission to download artifacts and explicitly tells the GitHub CLI which repository to act on. It does not change the Bitcoin library code,…

CI workflow permission fixNo source code changesNo cryptographic or consensus changes
276e0a61by Andrew Poelstra+5−01 file
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6657: Release tracking PR: `base58ck 0.5.0`

This commit is a routine version bump for the base58ck crate from 0.4.0 to 0.5.0. It only updates version numbers in package manifests, lock files, and adds a changelog entry. There are no code changes and no security relevance.

9deb5de1by Andrew Poelstra+22−168 files
No security note in commit
Informational 21 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6440: base58: Introduce `decode_check_to_array` for alloc-less decoding

This commit is a routine feature addition to the rust-bitcoin base58 crate. It adds a new no-allocator function to decode short base58-check strings into fixed-size byte arrays, and renames the existing error type while keeping a deprecate…

No security-relevant bug fix is described in the commit message or diff.New decoding path uses a fixed 128-byte scratch buffer (`ArrayVec`) and rejects oversized inputs.Checksum verification and invalid-character handling are preserved from the existing alloc implementation.
c5fd1832by Andrew Poelstra+330−775 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6646: hashes: add several methods to `Midstate` and release 1.2.0

This commit is a routine feature release for the bitcoin_hashes crate. It adds new public methods and a constant to the SHA-256 Midstate type so developers can compute SHA-256 midstates in const contexts. There is no indication of a securi…

0f68fcb3by Andrew Poelstra+157−4210 files
No security note in commit
Informational 15 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

units: reword docs to block count in relative locktime

This commit only rewords documentation comments and variable names in the codebase. It changes references from 'block height' to 'block count' for relative lock times, which is a terminology correction with no functional code changes. Ther…

8867fe2eby satsfy (Renato Britto)+20−172 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6667: Make the `WitnessesEncoder` private

This commit makes a small internal helper type called WitnessesEncoder private. It was previously exported as public API but is only used inside the transaction encoder. The change removes it from the public API surface and moves the code …

07d91f7fby Andrew Poelstra+54−1324 files
No security note in commit
Informational 12 AI analysisMessage 75 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

ci: fix labeller permissions

This commit adjusts a GitHub Actions workflow that automatically labels pull requests based on CI results. It adds a built-in repository token, tells the artifact download step to merge single-file artifacts, and explicitly sets the reposi…

Workflow-only change with no library code modificationsUses the default GITHUB_TOKEN rather than a custom secretRuns in workflow_run context, which already has elevated repository access by design
715f2bd6by Nick Johnson+5−01 file
No security note in commit
Informational 19 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6661: units: Remove `From<u16>` from `NumberOfBlocks`

This is a routine API cleanup, not a security fix. The developers removed a shortcut that let programmers create a 'number of blocks' value directly from any u16 number, replacing it with an existing named constructor called from_height. T…

ed5f1b68by Andrew Poelstra+18−358 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6668: Scrub the transaction encoding logic

This commit is a pure code reorganization (refactor) in the rust-bitcoin library. It moves transaction encoding and decoding definitions around within a single file so the code follows the project's preferred layout. No logic, behavior, or…

c5588ba5by Andrew Poelstra+57−571 file
No security note in commit
Informational 18 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6662: build(deps): bump actions/checkout from 6.0.2 to 6.0.3

This commit is a routine update to the GitHub Actions checkout tool used by the project's automated workflows. It changes the pinned version from 6.0.2 to 6.0.3 across many workflow files. The newer version fixes minor bugs related to SHA-…

Dependency bump of actions/checkout to a patch releaseUpstream fixes for SHA-256 repository checkout and merge commit regexAll affected workflows already disable persisted credentials
f7d364cdby Andrew Poelstra+29−2915 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6663: build(deps): bump taiki-e/install-action from 2.79.12 to 2.81.4

This is a routine Dependabot update that bumps the version of a third-party GitHub Action used only in automated testing workflows. The change does not touch the project's actual Bitcoin library code, and there is no indication it fixes or…

5c92c0b0by Andrew Poelstra+2−22 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Update the API text files

This commit only updates two generated API text files that list the public surface of the Rust crate. It removes entries for a `WitnessesEncoder` type, reflecting that the type is no longer part of the public API. There is no source code c…

9c391145by Tobin C. Harding+0−782 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Scrub the transaction encoding logic

This commit is a pure code reorganization: it moves existing transaction encoding and decoding definitions around within a single file so they follow the project's preferred layout. No logic was changed, no security bug was fixed, and no n…

80dcef15by Tobin C. Harding+57−571 file
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Make the WitnessesEncoder private

This commit simply hides an internal helper type called WitnessesEncoder from public view. It is a routine API-cleanup change with no security relevance visible in the code or commit message.

b37accc3by Tobin C. Harding+54−542 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

release bitcoin_hashes 1.2.0

This commit is a routine version bump for the bitcoin_hashes library from version 1.1.0 to 1.2.0. It only updates lock files, the package version number, and the changelog. There is no code change and no security relevance visible in the c…

8899dfd2by Andrew Poelstra+27−224 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump astral-sh/setup-uv from 8.1.0 to 8.2.0

This is a routine automated update by Dependabot that changes the pinned version of a GitHub Action used to install the 'uv' Python tool in two workflow files. The new commit hash corresponds to the legitimate 8.2.0 release of astral-sh/se…

1c438632by dependabot[bot]+2−22 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump github/codeql-action/upload-sarif

This is a routine automated update by Dependabot that changes the pinned version of a GitHub-provided security scanning helper used in a workflow. It does not modify the project's actual Bitcoin library code, its cryptographic logic, or an…

5293bee4by dependabot[bot]+1−11 file
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump taiki-e/install-action from 2.79.12 to 2.81.4

This is a routine Dependabot update that bumps a GitHub Actions helper used in automated testing workflows from version 2.79.12 to 2.81.4. It only changes which version of the action is invoked during CI runs; it does not modify the Rust B…

eb9544f9by dependabot[bot]+2−22 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump actions/checkout from 6.0.2 to 6.0.3

This is a routine automated update by Dependabot that bumps the GitHub Actions 'actions/checkout' dependency from version 6.0.2 to 6.0.3 across all project workflow files. It only changes pinned commit hashes and version comments for the a…

Routine patch-level dependency bumpNo changes to permissions, inputs, or workflow logicpersist-credentials: false already present on all checkout steps
ae935fadby dependabot[bot]+29−2915 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

AI review queuedconsensus_encoding: add decoder traitsby Nick Johnson · a562ce02 · Sep 16, 2025 · 2 filesMessage 66 · AdequateInformational 15Details
Commit message · Nick Johnson

consensus_encoding: add decoder traits

Following the push_decode model, the Decoder trait has two methods,
`push_bytes()` and `end()`. These are two separate calls rather than
overloading a result in one to make it easer for final validation and
marshalling to happen in `end()`. `push_bytes()` operates on a mutable
reference to a slice for easier decoder composition.

Decoder is Sized since it consumes self in `end()`.

Largely based on Martin Habovštiak's push_decode crate:
https://github.com/Kixunil/push_decode

66/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds new Rust traits (interface definitions) for a streaming, push-based Bitcoin consensus decoder. It only introduces abstract code patterns—no actual decoding logic for real Bitcoin data types, no changes to existing behavior, and no bug fixes. There is nothing here that directly affects security.

AI review queuedp2p: Update arbitrary dep to 1.4.1by Tobin C. Harding · e1d874d7 · Sep 16, 2025 · 1 fileMessage 90 · StrongInformational 15Details
Commit message · Tobin C. Harding

p2p: Update arbitrary dep to 1.4.1

I don't know why `cargo` can't work this out but `just
update-lock-files` is throwing an error

```
error: failed to select a version for `arbitrary`.
... required by package `bitcoin-p2p-messages v0.1.0 (/home/tobin/build/rust-bitcoin/p2p)`
... which satisfies path dependency `p2p` of package `bitcoin-fuzz v0.0.1 (/home/tobin/build/rust-bitcoin/fuzz)`
versions that meet the requirements `^1.4` are: 1.4.0

all possible versions conflict with previously selected packages.

previously selected package `arbitrary v1.4.1`
... which satisfies dependency `arbitrary = "^1.4.1"` of package `bitcoin-fuzz v0.0.1 (/home/tobin/build/rust-bitcoin/fuzz)`
```

Just update the arbitrary dep to `v1.4.1` like in the other crates.

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesecond-pass: broader security terminology
AI analysis · Informational 15/100

This commit is a routine dependency version bump in a build configuration file. It changes the required version of an optional test/fuzzing helper library from '1.4' to '1.4.1' so that it matches another crate in the same workspace and resolves a Cargo lock-file conflict. There is no indication this fixes or introduces a security vulnerability.

AI review queuedbuild(deps): bump actions/checkout from 4 to 5by dependabot[bot] · 3969c6fe · Sep 15, 2025 · 1 fileMessage 88 · StrongInformational 15Details
Commit message · dependabot[bot]

build(deps): bump actions/checkout from 4 to 5

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discountautomated dependency-update discountsecond-pass: broader security terminology
AI analysis · Informational 15/100

This is a routine automated update by Dependabot that bumps the GitHub Actions 'actions/checkout' dependency from version 4 to version 5 in the project's CI workflow file. There is no indication of a security fix or vulnerability in the commit itself.

AI review queuedprimitives: Remove hashes from the public APIby Tobin C. Harding · d718f945 · Sep 14, 2025 · 19 filesMessage 80 · StrongInformational 18Details
Commit message · Tobin C. Harding

primitives: Remove hashes from the public API

Currently `hashes` is showing up in the public API because of our
usage of the `hashes::hash_newtype` macro.

Crate a private module `hash_types` and use a bit of trickery and
`include!` a `generic.rs` hash type implementation so we don't violate
the DRY principle.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This is a large internal refactoring of the rust-bitcoin library. It moves Bitcoin hash wrapper types (like transaction IDs and block hashes) into a new private module so that the lower-level `hashes` crate no longer appears directly in the public API. The visible behavior of the library is intended to stay the same. There is no obvious security vulnerability introduced, but any wide-reaching refactor carries a small risk of accidental behavioral changes in serialization or parsing.

AI review queued2025-09-14 automated rustfmt nightlyby Fmt Bot · bf15b25c · Sep 14, 2025 · 5 filesMessage 45 · ThinInformational 15Details
Commit message · Fmt Bot

2025-09-14 automated rustfmt nightly

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is an automated code-formatting run by rustfmt. It only changes whitespace, line breaks, and the order of some module declarations and import lists. No program logic, algorithms, or security behavior were changed.

AI review queuedUpdate mod.rsby MozirDmitriy · 185561af · Sep 13, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · MozirDmitriy

Update mod.rs

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit fixes a simple typo in a documentation comment ('the the' → 'the'). It changes no executable code, no APIs, and no behavior. There is no security relevance.

AI review queuedfix function name in panic message for chain_hash_and_genesis_blockby Bugar · 77d32662 · Sep 13, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Bugar

fix function name in panic message for chain_hash_and_genesis_block

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit fixes a typo in a test-only panic error message. The message previously referenced a function name that did not exist; it now references the correct function name. There is no change to runtime code, no security fix, and no user-facing behavior change.

AI review queueddocs: note `ScriptBuf` and `script::Builder` panic behaviorby Daniel Roberts · 0c93c0ad · Sep 11, 2025 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Daniel Roberts

docs: note `ScriptBuf` and `script::Builder` panic behavior

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit only adds documentation comments explaining that two Rust Bitcoin types can panic if someone tries to create a script larger than about 2 billion bytes. No code behavior was changed, so it does not fix or introduce a security vulnerability by itself.

AI review queuedUpdate p2p fuzz targets with `Arbitrary` implsby Shing Him Ng · e7b95e36 · Sep 10, 2025 · 13 filesMessage 78 · AdequateInformational 15Details
Commit message · Shing Him Ng

Update p2p fuzz targets with `Arbitrary` impls

This change also moves p2p tests into their own directory and
standardizes the naming convention. The address roundtrip was split out
into its own test since it's using an `Arbitrary` impl, while the
deserialize_* tests only test deserialization.

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesecond-pass: broader security terminology
AI analysis · Informational 15/100

This commit is a routine test and fuzzing infrastructure update. It adds new ways to automatically generate random P2P message objects for fuzz testing, moves existing fuzz targets into a dedicated 'p2p' directory, and renames them. There is no change to production behavior, no bug fix, and no security patch in the code that runs in real Bitcoin applications.

AI review queuedBump dependency versions in fuzz file generationby Shing Him Ng · 4eca5a11 · Sep 10, 2025 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · Shing Him Ng

Bump dependency versions in fuzz file generation

These were updated in the actual files earlier, but should be updated in
the file generation script

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesecond-pass: broader security terminology
AI analysis · Informational 15/100

This commit updates version numbers inside a script that automatically generates fuzz-testing configuration files. It does not change any actual library code, cryptographic logic, or user-facing behavior. It simply keeps the generated files in sync with dependency versions that were already updated elsewhere in the project.

AI review queuedprimitives: Add serde unit tests for OutPointby Tobin C. Harding · 0b0980b9 · Sep 9, 2025 · 1 fileMessage 78 · AdequateInformational 15Details
Commit message · Tobin C. Harding

primitives: Add serde unit tests for OutPoint

This is likely (hopefully) tested elsewhere but in preparation for
manually implementing serde traits for `OutPoint` add
deserialization and roundtrip tests for both human and non-human
readable.

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: broader security terminologysecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds new automated tests for how the OutPoint data type is serialized and deserialized. It does not change any production code, fix a bug, or introduce a security issue. It is a routine test-only change.

AI review queuedManually implement serde traits for OutPointby Tobin C. Harding · 42d3039c · Sep 9, 2025 · 1 fileMessage 68 · AdequateInformational 17Details
Commit message · Tobin C. Harding

Manually implement serde traits for OutPoint

Reading Rust macros makes my eyes bleed - the
`internals::serde_struct_human_string_impl` is a great example.

The macro is used in exactly one place, for `OutPoint`.

Implement `serde` stuff for `OutPoint` and remove
`serde_struct_human_string_impl` - death to all macros.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit rewrites how the OutPoint type (a Bitcoin transaction reference made of a transaction ID and output index) is serialized and deserialized with the serde library. It replaces a macro with hand-written code. The change is described by the author as a code cleanup to remove an ugly macro, not as a security fix. There is no direct evidence in the commit or supplied references that this fixes a vulnerability.

AI review queuedconsensus_encoding: add units encodersby Nick Johnson · b787ac26 · Sep 9, 2025 · 5 filesMessage 50 · ThinInformational 15Details
Commit message · Nick Johnson

consensus_encoding: add units encoders

Adding new encoder implementations for the types in the units crate
which implement the legacy encodable trait.

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds new serialization (encoding) helpers for several Bitcoin unit types—Amount, BlockHeight, LockTime, and Sequence—so they can be written to the wire in the standard Bitcoin format. It is a straightforward feature addition with no visible bug fix or security change.

AI review queuedbuild(deps): bump actions/github-script from 7 to 8by dependabot[bot] · d2271378 · Sep 8, 2025 · 1 fileMessage 93 · StrongInformational 15Details
Commit message · dependabot[bot]

build(deps): bump actions/github-script from 7 to 8

Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discountautomated dependency-update discountsecond-pass: broader security terminology
AI analysis · Informational 15/100

This is a routine automated update by Dependabot that bumps the version of a GitHub Actions helper script used in a workflow that labels pull requests for semantic-versioning checks. There is no code change to the Rust Bitcoin library itself, and nothing in the commit suggests a security problem or fix.

AI review queuedbuild(deps): bump actions/labeler from 5 to 6by dependabot[bot] · 1557bb89 · Sep 8, 2025 · 1 fileMessage 88 · StrongInformational 15Details
Commit message · dependabot[bot]

build(deps): bump actions/labeler from 5 to 6

Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 6.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/labeler
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discountautomated dependency-update discountsecond-pass: broader security terminology
AI analysis · Informational 15/100

This is a routine automated update by Dependabot that bumps the GitHub Actions 'labeler' workflow action from version 5 to version 6. It only affects how pull-request labels are managed and does not change any Bitcoin library code, cryptography, or user-facing behavior.

AI review queuedchore: fix incorrect comment in sign-tx-taproot.rsby sent deed · 7a6963db · Sep 6, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · sent deed

chore: fix incorrect comment in sign-tx-taproot.rs

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only fixes a wrong word in a code comment. The example file's comment incorrectly said it constructs a 'p2wpkh' output and referred to a 'wpkh' variable, but the actual code builds a Taproot (p2tr) output using an 'internal_key' variable. No program code was changed, so there is no security impact.

AI review queuedUpdate the API filesby Tobin C. Harding · 7de1a9d4 · Sep 5, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Tobin C. Harding

Update the API files

Run `just check-api`, no other changes.

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only refreshes an automatically-generated API listing file. It adds lines describing a new BlockTime encoder that already exists elsewhere in the codebase, but makes no code changes itself. There is nothing here that fixes, introduces, or hides a security problem.

AI review queuedprimitives: Use new import policyby Tobin C. Harding · 02386cd7 · Sep 4, 2025 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Tobin C. Harding

primitives: Use new import policy

Now we want to only import using crate re-exports if possible in
`bitcoin` and `primitives`. We fixed `bitcoin` already, now do
`primitives`.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine code cleanup that changes how internal items are imported within the rust-bitcoin library. It switches from importing through intermediate module paths to using crate-level re-exports. There is no functional change, no bug fix, and no security relevance.

AI review queuedUpdate roadmap.mdby sashaodessa · 3e3a8dad · Sep 3, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · sashaodessa

Update roadmap.md

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit is a one-word typo fix in the project's public planning document (roadmap.md), changing 'stabalize' to 'stabilize'. It does not modify any code, build configuration, tests, or documentation that affects how the software works. There is no security relevance.

AI review queuedRe-name units::parse to parse_intby Tobin C. Harding · e40a8974 · Sep 2, 2025 · 18 filesMessage 80 · StrongInformational 15Details
Commit message · Tobin C. Harding

Re-name units::parse to parse_int

The `pares` module now only does one thing, parses strings (hex or
otherwise) to get integers. It can be re-named to `parse_int` to
better describe this and also so that when re-exported in `primitives`
and `bitcoin` the name is not misleading but nicely descriptive.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a simple rename of an internal Rust module from `parse` to `parse_int`. It does not change what the code does, only how it is named and where it appears in the public API. There is no security fix or behavior change.

AI review queuedrevert #4838 and #4847 using div_ceilby Andrew Poelstra · 2b38ffc2 · Sep 1, 2025 · 2 filesMessage 76 · AdequateLow 48Details
Commit message · Andrew Poelstra

revert #4838 and #4847 using div_ceil

In #4838 we used saturating addition to simulate `div_ceil`, which gives
incorrect results on extreme values but at least doesn't panic. Similar
in the followup PR #4847. (These aren't detected by clippy, but I remember
them.)

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: broader security terminology
AI analysis · Low 48/100

This commit fixes a subtle arithmetic bug in how Bitcoin fee rates and transaction weights are rounded up. The previous code tried to avoid crashes on extremely large numbers by using 'saturating addition,' but that produced slightly wrong rounded-up results for the maximum possible values. The patch replaces that workaround with Rust's proper div_ceil function, which gives the mathematically correct ceiling division even at the extremes. In practice, this mostly affects edge-case calculations with maximum values and is unlikely to be directly exploitable for theft, but it removes a source of incorrect fee/weight estimates.

AI review queuedupdate MSRV to 1.74 everywhere except in internalsby Andrew Poelstra · c2ab0f73 · Sep 1, 2025 · 20 filesMessage 73 · AdequateInformational 15Details
Commit message · Andrew Poelstra

update MSRV to 1.74 everywhere except in internals

If I update it in internals, our uses of `rust_version!` with values below
1.74 break. In particular the cond_const! macro breaks. So I will do that
in the next commit, so the diff for this one is simple.

We may want to put some work into getting a single source of truth here...
I had to change this constant in 29 files, plus internals/Cargo.toml.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is a routine maintenance change that raises the Minimum Supported Rust Version (MSRV) from Rust 1.63.0 to 1.74.0 across documentation, CI configuration, and package manifests. It does not change any code logic, cryptographic operations, or security behavior. It simply tells users and automated tooling that the project now requires a newer Rust compiler.

AI review queuedbitcoin: add "extreme object size" deserialization unit testby Andrew Poelstra · 1c18ed99 · Aug 23, 2025 · 1 fileMessage 91 · StrongInformational 12Details
Commit message · Andrew Poelstra

bitcoin: add "extreme object size" deserialization unit test

As promised in https://github.com/rust-bitcoin/rust-bitcoin/pull/4762

I am not convinced that our decoding of large transactions and blocks is
properly tested to make sure that we don't accidentally start rejecting
very large objects. Add a unit test specifically for this.

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 12/100

This commit only adds a new unit test to the rust-bitcoin library. It does not change any production code. The test checks that the library can still serialize and deserialize very large Bitcoin transactions, witnesses, and script signatures. There is no bug fix or security patch here.

AI review queuedUpdate CHANGELOG.mdby viktorking7 · abb26f92 · Aug 23, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · viktorking7

Update CHANGELOG.md

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only fixes a spelling mistake in the changelog ('paramater' to 'parameter') and adds a missing newline at the end of the file. It changes no code, no build files, and no documentation that affects how the software works. There is no security relevance.

AI review queuedUpdate message_network.rsby Alvarez · ee067e02 · Aug 22, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · Alvarez

Update message_network.rs

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit is a trivial typo fix: it renames a local variable from 'delimeter' to 'delimiter' with no functional change. The code behavior is identical before and after.