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 queue563AI analyses
190commits · 30 days
404commits · 60 days
1283commits · 180 days
2069commits · 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 Bagot640192232068
Tobin C. Harding4096580063
jrakibi944954068
Nick Johnson1892027059
Andrew Poelstra512020075
Jamil Lambert, PhD1141830061
Fmt Bot311416045
Trevor Arjeski111111069
Shing Him Ng31710056
Ismail Daif2267050
satsfy (Renato Britto)1768066
Martin Habovstiak2759069
Analysis record

Published AI watches

Last scanned 52 minutes ago

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 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 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 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 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
Informational 15 AI analysisMessage 60 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

base58ck: Bump version to 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 describing unrelated feature changes. There are no code changes,…

8479b56eby Tobin C. Harding+22−168 files
No security note in commit
Informational 20 AI analysisMessage 58 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Rename Error to DecodeCheckError

This commit is a routine code cleanup: it renames the `Error` type in the base58 module to the more descriptive `DecodeCheckError`, and adds a deprecated type alias so existing code using `base58::Error` continues to work. There is no chan…

b0eba4c0by Mitchell Bagot+45−395 files
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: add sha256::Midstate::SHA256_IV constant

This commit is a routine internal refactoring in the rust-bitcoin SHA-256 hashing code. It exposes the SHA-256 initial value (IV) as a public constant and renames an internal helper function so it can start from any midstate rather than al…

dc21841bby Andrew Poelstra+39−143 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: add several methods to sha256::Midstate for computing them in const contexts

This commit adds new helper methods to the SHA-256 'Midstate' type in the rust-bitcoin hashes library. These helpers let callers compute SHA-256 intermediate states inside 'const' contexts (compile-time constants). It is a routine feature …

7d8f06d2by Andrew Poelstra+80−72 files
No security note in commit
Informational 20 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

units: make Sequence inner field private

This commit makes a single internal number field private in a Rust Bitcoin library type called Sequence. It is an API-cleanup change to follow Rust naming conventions (C-STRUCT-PRIVATE). It does not fix a memory corruption bug, a cryptogra…

No security signal: this is an API-encapsulation refactorNo validation or serialization logic changedNo unsafe code, no cryptographic operations modified
30f280daby satsfy (Renato Britto)+9−96 files
No security note in commit
Informational 17 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

taproot-primitives: Implement encoding traits for TapLeafHash

This commit adds standard data-encoding support for a Bitcoin Taproot hash type (TapLeafHash) so it can be properly serialized and deserialized in PSBT data. There is no indication of a security bug being fixed; it appears to be a missing-…

No security-relevant signal in commit message or diffChange is a feature addition (encoding trait implementations)No bounds-checking, memory-safety, or cryptographic flaws evident in diff
b2ab0896by Mitchell Bagot+59−12 files
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Split Address into an extension trait

This commit is a routine code reorganization in the rust-bitcoin library. It moves the `Address::from_script` method out of the main `Address` type into a new 'extension trait' called `AddressExt`. The actual logic of the function is copie…

c900fa8cby Mitchell Bagot+35−263 files
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

ci: update cargo-rbmt ever month instead of week

This commit simply renames a GitHub Actions workflow file and changes its schedule from weekly to monthly. It is a routine CI maintenance change with no security relevance.

778018e1by Nick Johnson+46−461 file
No security note in commit
Informational 18 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Use generic arguments for functions

This commit is a routine API cleanup: it makes a few Bitcoin merkle-root functions accept a broader range of input types (generic iterators and borrowed transactions) instead of only slices or exact iterator types. There is no security bug…

e887140aby Mitchell Bagot+26−184 files
No security note in commit
Informational 19 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

units: Flatten nested checked_ops methods

This commit is a straightforward code cleanup in the rust-bitcoin library. It replaces deeply nested match blocks with newer, cleaner Rust syntax (let-else statements) inside safe arithmetic helper functions. The actual behavior of the cod…

99f3721dby Abeeujah+53−1274 files
No security note in commit
Informational 15 AI analysisMessage 23 · Opaque
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

primitives: Remove todo

This commit only changes a code comment. It replaces a developer TODO note with a short explanation that the code is verbose because it implements a state machine. No code behavior, logic, or security properties changed.

e62e553dby Tobin C. Harding+1−11 file
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 queuedUpdate api filesby Jamil Lambert, PhD · 0af79178 · Apr 10, 2026 · 3 filesMessage 28 · OpaqueTriage 0Details
Commit message · Jamil Lambert, PhD

Update api files

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI review queuedbitcoin: Move transaction module errors to error submoduleby Mitchell Bagot · 5bd3c36a · Apr 8, 2026 · 1 fileMessage 73 · AdequateInformational 19Details
Commit message · Mitchell Bagot

bitcoin: Move transaction module errors to error submodule

At present, some modules in bitcoin separate error types into
submodules with re-exports while others simply define the error types
in the module. This inconsistency is confusing and makes the docs vary.
All error types for each top-level module should be moved into a
relevant submodule and re-exported without inline docs.

Move error types from transaction module into error submodule and
re-export.

73/100 · AdequateMessage clarity
✓ Specific, 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 19/100

This commit is a straightforward internal code reorganization. It moves several error type definitions from one place in the transaction module into a new 'error' submodule and re-exports them so existing code can still use them the same way. There is no functional change to how transactions are validated, parsed, or secured.

AI review queuedbitcoin: Move sign_message module errors to error submoduleby Mitchell Bagot · c4f8b1e6 · Apr 8, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Mitchell Bagot

bitcoin: Move sign_message module errors to error submodule

At present, some modules in bitcoin separate error types into
submodules with re-exports while others simply define the error types
in the module. This inconsistency is confusing and makes the docs vary.
All error types for each top-level module should be moved into a
relevant submodule and re-exported without inline docs.

Move error types from sign_message module into error submodule and
re-export.

73/100 · AdequateMessage clarity
✓ Specific, 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 simple internal code cleanup. It moves an error type (MessageSignatureError) from one place in the sign_message module into a new error submodule and re-exports it so users can still access it the same way. No behavior, logic, or security properties changed.

AI review queuedprimitives: Replace decoder definitions with decoder_newtype macroby Mitchell Bagot · ac2308b7 · Apr 7, 2026 · 6 filesMessage 73 · AdequateInformational 15Details
Commit message · Mitchell Bagot

primitives: Replace decoder definitions with decoder_newtype macro

Introduce decoder_newtype macro in primitives through the include!
macro.
Replace all newtype Decoder structs in primitives with decoder_newtype
calls.

73/100 · AdequateMessage clarity
✓ Specific, 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 in the rust-bitcoin library. It replaces several manually-written decoder helper structs with a new macro that generates the same code automatically. There is no change to how data is parsed, no new behavior, and no security fix or vulnerability introduced.

AI review queuedunits: Replace decoder definitions with decoder_newtype macroby Mitchell Bagot · 5c9efe7a · Apr 7, 2026 · 8 filesMessage 73 · AdequateInformational 15Details
Commit message · Mitchell Bagot

units: Replace decoder definitions with decoder_newtype macro

Throughout the crates, there exist various decoder types that are
newtype wrappers around existing encoders. Almost all of these use the
same boilerplate for most of their logic and can be replaced by a
macro that provides the same functionality.

Introduce private decoder_newtype macro in include file and introduce
to units crate through include! macro.
Replace all Decoder structs in units with decoder_newtype calls.

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

This commit is a routine code cleanup in the rust-bitcoin library. It replaces several nearly identical decoder definitions with a single macro, reducing boilerplate. There is no change to user-facing behavior, no bug fix, and no security relevance.

AI review queuedprimitives: Update API filesby Mitchell Bagot · d723402f · Apr 4, 2026 · 3 filesMessage 35 · OpaqueTriage 0Details
Commit message · Mitchell Bagot

primitives: Update API files

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI review queuedprimitives: Move transaction module errors to error submoduleby Mitchell Bagot · 2d97f3e4 · Apr 4, 2026 · 2 filesMessage 73 · AdequateInformational 15Details
Commit message · Mitchell Bagot

primitives: Move transaction module errors to error submodule

At present, some modules in primitives separate error types into
submodules with re-exports while others simply define the error types
in the module. This inconsistency is confusing and makes the docs vary.
All error types for each top-level module should be moved into a
relevant submodule and re-exported without inline docs.

Move error types from transaction module into error submodule and
re-export.

73/100 · AdequateMessage clarity
✓ Specific, 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 in the rust-bitcoin library. It moves error type definitions for Bitcoin transactions into a new 'error' submodule and re-exports them, without changing what the errors mean or how transactions are validated. There is no security fix or behavior change.

AI review queuedFix cargo-rmbt typoby Ismail Daif · 65501616 · Apr 3, 2026 · 1 fileMessage 28 · OpaqueTriage 0Details
Commit message · Ismail Daif

Fix cargo-rmbt typo

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedhashes: Update API filesby Mitchell Bagot · 58c698f1 · Apr 3, 2026 · 3 filesMessage 28 · OpaqueTriage 0Details
Commit message · Mitchell Bagot

hashes: Update API files

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI review queuedconsensus_encoding: bump compact size default decoding limitby Nick Johnson · 5b9ee4d8 · Apr 2, 2026 · 4 filesMessage 73 · AdequateTriage 7Details
Commit message · Nick Johnson

consensus_encoding: bump compact size default decoding limit

Bump the max decoding limit on the standard compact size decoder from
4MB to 32MB. This matches the value used in Core as the general anti-DoS
setting.

All current call sites across the crates are updated to use the old
default explicitly. They can be changed to use the new default if it
makes sense on a case by case basis.

This new default breaks on 16-bit machines since it doesn't fit in a
usize. The alternative would be to change the type to a u64 which sucks
for everyone else.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedapi: update api filesby Nick Johnson · 76d23d13 · Apr 2, 2026 · 2 filesMessage 28 · OpaqueTriage 0Details
Commit message · Nick Johnson

api: update api files

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI review queuedconsensus_encoding: add custom limit construcotrs to generic decodersby Nick Johnson · 3c2cbd87 · Apr 2, 2026 · 1 fileMessage 65 · AdequateTriage 7Details
Commit message · Nick Johnson

consensus_encoding: add custom limit construcotrs to generic decoders

Allow setting a custom limit in case the default 4MiB is too conservative.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedconsensus_encoding: fix documentation headerby yancy · 0315db3f · Apr 2, 2026 · 1 fileMessage 35 · OpaqueTriage 0Details
Commit message · yancy

consensus_encoding: fix documentation header

"to usually to encode" is nonsensical.

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedprimitives: Add derives to encoders and decodersby Tobin C. Harding · e90c2e34 · Apr 1, 2026 · 8 filesMessage 68 · AdequateInformational 19Details
Commit message · Tobin C. Harding

primitives: Add derives to encoders and decoders

We forgot to derive `Clone` and `Debug` for all the encoders and decoders.

We did do it over in `consensus_encoding` so we can just slap the
derives on. Arguably these could be in the macro for encoders but for
the sake of explicitness just put them on the call site.

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 19/100

This commit adds standard Rust traits (`Clone` and `Debug`) to a collection of data-encoding helper structs in the rust-bitcoin library. These traits let developers duplicate encoder/decoder objects and print them for debugging. There is no security vulnerability here; it is a routine API-quality improvement.

AI review queuedImplement Clone for decodersby Tobin C. Harding · 85904223 · Apr 1, 2026 · 1 fileMessage 50 · ThinTriage 7Details
Commit message · Tobin C. Harding

Implement Clone for decoders

The composite decoders are missing `Clone` impls. Do the same as we do
for `Debug` and implement them manually.

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedunits: Add derives to encoders and decodersby Tobin C. Harding · b026bf0e · Apr 1, 2026 · 6 filesMessage 68 · AdequateInformational 20Details
Commit message · Tobin C. Harding

units: Add derives to encoders and decoders

We forgot to derive `Clone` and `Debug` for all the encoders and
decoders. We did do it over in `consensus_encoding` so we can just
slap the derives on. Arguably these could be in the macro for encoders
but for the sake of explicitness just put them on the call site.

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 20/100

This commit adds standard Rust helper traits (Debug and Clone) to a set of data encoder/decoder structs in the rust-bitcoin library. These traits only affect how developers can print, inspect, or duplicate encoder/decoder objects; they do not change serialization logic, parsing rules, or security behavior. There is no indication this fixes a vulnerability.

AI review queuedImplement Debug for Decoder6by Tobin C. Harding · 6ee69762 · Apr 1, 2026 · 1 fileMessage 50 · ThinTriage 7Details
Commit message · Tobin C. Harding

Implement Debug for Decoder6

We did the other composite decoders but forgot this one.

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedprimitives: Split cfg(all(...)) into stacked attributesby Ismail Daif · b24494dd · Mar 31, 2026 · 5 filesMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

primitives: Split cfg(all(...)) into stacked attributes

50/100 · ThinMessage clarity
✓ Specific, 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 a purely stylistic change in the Rust Bitcoin library. It rewrites conditional compilation attributes (the Rust equivalent of #ifdef feature flags) from a single combined form to a stacked form. For example, #[cfg(all(feature = "hex", feature = "alloc"))] becomes two separate #[cfg(...)] lines. This has no effect on which code is compiled or how the library behaves, and it does not fix or introduce any security issue.

AI review queuedci: switch to rbmt api commandby Nick Johnson · 752c98ee · Mar 31, 2026 · 36 filesMessage 72 · AdequateTriage 0Details
Commit message · Nick Johnson

ci: switch to rbmt api command

API files have been moved into the package directories themselves instead
of the shared root level api/ directory.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
second-pass: unusually broad change
AI review queuedconsensus_encoding: Move errors to submoduleby Tobin C. Harding · 34281a57 · Mar 31, 2026 · 5 filesMessage 80 · StrongTriage 7Details
Commit message · Tobin C. Harding

consensus_encoding: Move errors to submodule

In order to make the HTML docs render more clearly it would be nice to
have all the errors separate. We recently introduced a policy for
doing this repo wide.

Add a public `error` submodule and re-export all errors at the crate
root.

Because of anomalies in how `cargo` renders docs for re-exports
between types and modules explicitly use `doc(inline)` and `no_inline`
so we get exactly the behaviour we desire.

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
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedconsensus_encoding: Set 100 column widthby Tobin C. Harding · d62cf812 · Mar 31, 2026 · 5 filesMessage 68 · AdequateTriage 7Details
Commit message · Tobin C. Harding

consensus_encoding: Set 100 column width

`rust-bitcoin` project uses 100 column width for rustdoc. Now that
`consensus_encoding` is a hair width away from 1.0 update all the
rustdocs to use it.

However do not be dogmatic; if a doc is better with slightly
different colum width then do so.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedconsensus_encoding: Add whitespace between type and functionby Tobin C. Harding · cdf163e9 · Mar 31, 2026 · 1 fileMessage 50 · ThinTriage 7Details
Commit message · Tobin C. Harding

consensus_encoding: Add whitespace between type and function

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI review queuedconsensus_encoding: Pluralize rustdoc titleby Tobin C. Harding · 42e93486 · Mar 31, 2026 · 2 filesMessage 35 · OpaqueTriage 7Details
Commit message · Tobin C. Harding

consensus_encoding: Pluralize rustdoc title

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI review queuedMatch manifest nightly versionby Nick Johnson · ad02d5c6 · Mar 30, 2026 · 1 fileMessage 35 · OpaqueTriage 0Details
Commit message · Nick Johnson

Match manifest nightly version

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedInline merkle node encodingby Jamil Lambert, PhD · f5a49f10 · Mar 27, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Jamil Lambert, PhD

Inline merkle node encoding

Add inline to the merkle node encoder, decoder and constructors to match
BlockHash.

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 only adds Rust compiler hints (`#[inline]`) to a few small functions that convert Bitcoin merkle node values to and from bytes. It does not change what the code does, only gives the compiler a stronger suggestion to embed these tiny functions at call sites. There is no security relevance.