BB
← All projectsBitBox

BitBox02 firmware

Firmware and bootloader for BitBox02 signing devices.

BitcoinHardware walletsNormal
Repository coverage

647 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.

193security candidates127second-pass queue230AI analyses
28commits · 30 days
47commits · 60 days
312commits · 180 days
647commits · 365 days
Backfill bands
Aug 5 → Feb 6335 seen28 candidatesComplete
Feb 6 → Jun 6265 seen19 candidatesComplete
Jun 6 → Jul 619 seen5 candidatesComplete
Jul 6 → Aug 526 seen3 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.

59/100 average clarity
65Strong · 80–100
281Adequate · 60–79
230Thin · 40–59
71Opaque · 0–39
23security 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.
Marko Bencun390117135258
benma's agent892834162
Niklas Dusenlund1112931059
cedwies1257063
Tomas Vrba947074
Cedric Wiese1239049
Jad811062
thisconnect211072
benma211074
Niklas111035
Yasser Aziza111070
Patrick Steiger111045
Analysis record

Published AI watches

Last scanned 52 minutes ago

Moderate 60 AI analysisMessage 90 · Strong
BB BitBoxBitBox02 firmware BitcoinHardware wallets

backup: validate decoded seed length

This update fixes a bug in how the BitBox02 hardware wallet reads backup files from an SD card. A tampered backup file could claim to contain a seed longer than the 32-byte limit, which previously caused the device to panic (crash) when li…

Out-of-bounds/panic condition in backup parsingMissing input validation on decoded protobuf fieldSD-card backup file could be attacker-controlled
80baf1eeby benma's agent+34−01 file
Vendor flagged security relevance
Low 39 AI analysisMessage 73 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

rust: initialize C output buffers

This commit fixes a class of low-level memory-safety bugs where Rust code was given buffers containing uninitialized bytes. Rust's rules require every byte of a slice to be initialized, even if the function will overwrite them. Passing uni…

Undefined behavior at C/Rust FFI due to uninitialized buffers being treated as Rust slicesPotential optimizer-dependent behavior from violating Rust slice initialization rulesHardening of cryptographic output paths (SHA-256, HMAC-SHA256, HMAC-SHA512)
511018eaby benma's agent+52−2713 files
Vendor flagged security relevance
High 74 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

eth: limit EIP-712 recursion depth

This commit adds a hard limit on how deeply nested Ethereum typed-message (EIP-712) structures can be when the BitBox02 hardware wallet signs them. Without the limit, an attacker could craft a message type that refers to itself over and ov…

Adds explicit recursion-depth cap to attacker-controlled input parsingPre-validates schema roots before host callbacks or user confirmationProtects against stack exhaustion / denial-of-service from deeply nested EIP-712 types
4ccadcc0by benma's agent+196−451 file
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

py: extract bootloader connection

This commit is a minor code cleanup in a Python helper script. It moves existing bootloader connection logic into a small nested helper function to satisfy a style checker (pylint's limit on the number of return statements). No behavior ch…

886113d0by benma's agent+10−61 file
No security note in commit
Low 42 AI analysisMessage 78 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Warn before truncated value displays

This commit adds a warning screen to the BitBox02 hardware wallet whenever a long message or value is about to be shown in a truncated form. Previously, the device could silently cut off the end of very long transaction details, message da…

UI truncation warning added before oversized confirmation bodiesCentralized body-size limit to keep Rust and C UI limits in syncReplaced duplicated warning logic with shared confirm_value helper
5b3aee6fby benma's agent+266−4710 files
No security note in commit
Informational 12 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

releases: add v9.26.2, v9.26.3 and v9.26.4

This commit is a routine release-management update. It adds signed build assertions for three new BitBox02 firmware versions (9.26.2, 9.26.3, 9.26.4) and updates the release documentation and build helper script. The build script now delet…

No firmware source code is modifiedNo cryptographic primitives or protocols are changedNo bug fixes or vulnerability mitigations are present in the diff
eed2e68eby Marko Bencun+79−116 files
No security note in commit
Informational 21 AI analysisMessage 68 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

eth: loosen EIP-712 identifier validation

This firmware update relaxes the rules for valid Ethereum typed-data (EIP-712) names so they can contain a colon (:), which some decentralized apps use as a namespace separator. Member names still cannot contain colons. The change is prese…

Input validation relaxation for externally supplied EIP-712 type namesExplicit claim that ':' cannot forge encodeType boundariesMember-name validation remains strict
9703d8d9by Marko Bencun+50−43 files
No security note in commit
Moderate 59 AI analysisMessage 69 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Limit SD erase file size

This commit fixes a bug in how the BitBox02 hardware wallet wipes files from its SD card. Before erasing a file, the device now checks the file's reported size against a safe maximum. Without this check, a tampered SD card could claim a fi…

CVE-2026-6682 referenced in commit messageMalformed FAT directory entry could cause excessive overwrite loopDenial-of-service via SD card tampering
2453f528by Marko Bencun+4−01 file
Vendor flagged security relevance
High 70 AI analysisMessage 66 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Validate mounted FAT geometry

This update adds a safety check when the BitBox02 hardware wallet mounts a microSD card. A malicious or deliberately malformed FAT filesystem could trick the device's file-system library into placing user data inside attacker-controlled bo…

Fixes integer-wrap / geometry confusion in FAT mount logicAdds explicit post-mount validation of filesystem metadataPrevents data area from landing inside attacker-controlled FAT sectors
01c017d6by Marko Bencun+21−01 file
Vendor flagged security relevance
Low 27 AI analysisMessage 69 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Update FatFs to R0.16

This commit updates the third-party FatFs file-system library inside the BitBox02 firmware from version R0.14b to R0.16 plus an upstream patch. The change is a routine dependency refresh: it replaces the vendored source files with the newe…

Third-party dependency update (FatFs R0.14b -> R0.16+p1)No explicit security claim in commit messageNo CVE or advisory referenced in commit or supplied references
9f2b493dby Marko Bencun+3842−256979 files
No security note in commit
Low 34 AI analysisMessage 59 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

api: add BitBoxSync

This commit adds a brand-new firmware feature called BitBoxSync, which lets the BitBox02 hardware wallet participate in a sync service by proving its identity, signing login/admin intents, and decrypting namespace encryption keys. The code…

New cryptographic API surface added to the hardware wallet (Ed25519, X25519, HKDF, AEAD)Vendored third-party crate `hkdf` introduced into the firmware supply chainNew user-confirmation flow for signing sync intents; one operation (UnwrapNamespaceDek) deliberately skips confirmation
54cdb54dby Marko Bencun+2883−2230 files
No security note in commit
Informational 0 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

blupgrade: update stage1 binaries to v1.2.2

This commit simply swaps in newer pre-built bootloader stage1 binary files (version 1.2.2 replacing 1.2.1) for four BitBox02 hardware variants and updates the corresponding checksum list. The actual code inside the new binary files is not …

5940a800by Marko Bencun+8−86 files
No security note in commit
Moderate 59 AI analysisMessage 50 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

bootloader/stage1: fix erase handling for partially erased blocks

This update fixes the BitBox02 bootloader's firmware-erase routine. Previously, when erasing leftover padding after a firmware update, the bootloader started erasing at the exact page where the firmware ended. Because flash memory can only…

Bootloader firmware erase routine could erase a flash block containing both firmware and paddingFix aligns erase start to erase-block boundary and re-checks erased state before erasingChangelog describes the change as a fix for 'partially erased flash blocks'
b31206a8by Marko Bencun+23−83 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

blupgrade: add stage0/stage1 production binaries

This commit adds production bootloader upgrade files for the BitBox02 hardware wallet and updates build scripts to use them. It is a routine asset-management change: replacing placeholder development hashes with real signed production bina…

8db4b0dcby Marko Bencun+26−1720 files
No security note in commit
Informational 20 AI analysisMessage 83 · Strong
BB BitBoxBitBox02 firmware BitcoinHardware wallets

blupgrade: keep dev stage1 unsigned

This commit fixes a build script used only for development/testing versions of the BitBox02 bootloader upgrade. It makes the development-stage1 bootloader images unsigned again, while keeping production images fully signature-verified. The…

Signature verification relaxed only for development buildsProduction payload validation still requires signaturesDevelopment stage0 already skipped stage1 signature verification per commit message
476b90e3by Marko Bencun+9−69 files
No security note in commit
High 76 AI analysisMessage 23 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

security improvements

This BitBox02 firmware update is a broad security patch that fixes several independent bugs: it prevents a maliciously oversized USB report from overflowing memory, stops a corrupted Bluetooth pairing database from being read or written wi…

Bounds check added to USB HID Set Report input lengthBLE bond DB length validation hardened against negative and oversized valuesBootloader firmware image size limit relaxed to intended maximum
cbb40634by Marko Bencun+1117−25021 files
Vendor flagged security relevance
Low 46 AI analysisMessage 60 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

bootloader: allow full sized images

This commit fixes a bootloader bug where the device rejected firmware updates that used the maximum allowed size. The off-by-one check meant legitimate full-sized firmware images could not be installed, potentially blocking updates. The fi…

Off-by-one input validation in firmware-update pathBootloader change affecting firmware chunk count acceptanceCHANGELOG labels the change as a bugfix for full-sized firmware upgrades
f60b93ccby Marko Bencun+5−33 files
No security note in commit
Moderate 59 AI analysisMessage 28 · Opaque
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Add bootloader update

This is a large firmware commit that adds a new two-stage bootloader update mechanism for the BitBox02 hardware wallet. It replaces the old single bootloader with a small, fixed 'stage0' plus a separately signed 'stage1', and ships a speci…

Bootloader architecture changed from monolithic to two-stage (stage0 + signed stage1).Firmware signature hash now includes a 16-bit product_id, binding firmware to product variant.Root public keys were rotated/replaced with a single set across all products.
3f1f3172by Marko Bencun+5003−52379 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 73 · Adequate
BB BitBoxBitBox02 firmware BitcoinHardware wallets

Add flash data backup scripts

This commit adds two helper scripts for developers to back up and restore BitBox02 flash memory areas using a Segger J-Link debugger. The scripts require physical hardware access and a debugging probe, and they are not part of the firmware…

285fa768by Niklas Dusenlund+383−03 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
BB BitBoxBitBox02 firmware BitcoinHardware wallets

bb03 UI: placeholder BTC signing workflows

This commit replaces unfinished placeholder code (which would crash with 'todo!()') with simple working user-interface placeholders for Bitcoin signing demonstrations. It adds basic on-screen prompts to confirm a recipient/amount and a tot…

f7b0b082by Jad+24−121 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.

Security candidatechore: Break cyclic depby Niklas Dusenlund · 531f9f88 · Mar 17, 2026 · 9 filesMessage 55 · ThinInformational 15Details
Commit message · Niklas Dusenlund

chore: Break cyclic dep

bitbox02 must not depend on bitbox02-rust

55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100

This is a routine code cleanup commit that reorganizes how two internal Rust software components connect to each other. It removes a circular dependency where a higher-level crate called 'bitbox02-rust' depended on a lower-level crate called 'bitbox02', and vice versa. The change moves a small piece of noise-cryptography-related code into the lower-level crate and adjusts build configuration files accordingly. There is no indication this fixes a security vulnerability or changes user-visible behavior.

Security candidatePy: avoid brittle Bootloader import in editable installsby Cedric Wiese · faebccd4 · Mar 16, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Cedric Wiese

Py: avoid brittle Bootloader import in editable installs

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
update trust
AI analysis · Informational 15/100

This is a minor Python import cleanup in a developer/test script. It changes how one internal class is imported so that the script works reliably when installed in 'editable' mode. There is no security issue here.

Security candidatesecurechip: decouple from C bitbox02 memory implby Marko Bencun · e1cea0c5 · Mar 16, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · Marko Bencun

securechip: decouple from C bitbox02 memory impl

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a routine internal refactoring: it moves the lookup of which secure chip type (ATECC or Optiga) is present from an older C memory module to a newer Rust memory module. The actual chip-detection logic and behavior do not change; only which internal API is called. There is no indication this fixes or introduces a security vulnerability.

Security candidateoptiga+atecc: decouple from memory.hby Marko Bencun · 627f089a · Mar 16, 2026 · 16 filesMessage 60 · AdequateInformational 17Details
Commit message · Marko Bencun

optiga+atecc: decouple from memory.h

So these C modules can be used in BB03 without relying on BB02 memory functions.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
boot or update path
AI analysis · Informational 17/100

This commit is a software architecture cleanup: it moves some type definitions and helper functions so that secure-chip code (ATECC/Optiga) no longer depends directly on the BitBox02-specific memory module. The goal stated by the developer is to make those modules reusable in a future BitBox03. There is no direct evidence in the commit that it fixes a security vulnerability, changes cryptographic behavior, or introduces a bug.

Lower-priorityremove salt.c/salt.hby Marko Bencun · 0ff1a9e6 · Mar 16, 2026 · 9 filesMessage 53 · ThinTriage 0Details
Commit message · Marko Bencun

remove salt.c/salt.h

It was a thin wrapper, we inline it so the list of C files we need to
consider in bb02/bb03 is smaller.

53/100 · ThinMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Provides an explanatory body
Lower-priorityBtc: accept SWAPKIT payment request identitiesby Cedric Wiese · 39659c65 · Mar 11, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Cedric Wiese

Btc: accept SWAPKIT payment request identities

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityoptiga: handle counter reset errorsby benma · 4e8eae88 · Mar 11, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · benma

optiga: handle counter reset errors

Check the return value of _reset_counter() in
_configure_object_counter() and propagate failures before
writing metadata.

This restores the previous behavior where counter initialization
errors abort setup instead of being silently ignored.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Security candidateci: pin mattermost notify actionby benma · e17167ee · Mar 11, 2026 · 1 fileMessage 80 · StrongLow 30Details
Commit message · benma

ci: pin mattermost notify action

Pin the Mattermost action in report-artifacts to an immutable commit SHA instead of the mutable master branch.

Also set explicit job-level permissions to contents: read to reduce default GITHUB_TOKEN privileges for this secret-using job.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
access controlcredential or privilege statedocumentation-only discount
AI analysis · Low 30/100

This commit hardens the project's automated CI workflow in two ways: it pins a third-party Mattermost notification action to a specific, unchangeable version (instead of a moving 'master' branch), and it restricts the job's GitHub token permissions to read-only access to repository contents. These are defensive security improvements that reduce supply-chain and privilege risks, but the commit itself does not fix an active vulnerability.

AI review queuedeth: fix data streaming issue when data lenght is exactly 1 byteby Tomas Vrba · a2579c78 · Mar 10, 2026 · 6 filesMessage 73 · AdequateModerate 59Details
Commit message · Tomas Vrba

eth: fix data streaming issue when data lenght is exactly 1 byte

When transaction data is streamed from the host in chunks, the
first_byte() method was called synchronously but the byte hadn't
been fetched yet for 1-byte payloads. Make first_byte() async so
it can request the byte from the host on demand, and handle the
1-byte special case in next() by returning the cached byte
directly instead of issuing a redundant chunk request.

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 · Moderate 59/100

This commit fixes a bug in the BitBox02 hardware wallet's Ethereum transaction signing. When signing an Ethereum transaction whose 'data' field is exactly 1 byte long and is streamed from the host computer in chunks, the device could call for the first byte before it had actually been fetched, leading to a crash or failed signing. The fix makes the first-byte lookup asynchronous so it can request the byte from the host on demand, and avoids asking for an extra chunk when the whole payload is just that one byte. New unit tests and regenerated test vectors confirm the 1-byte case now works.

Lower-priorityAGENTS.md: prefer hex! literalsby Jad · d73d7e90 · Mar 10, 2026 · 1 fileMessage 70 · AdequateTriage 0Details
Commit message · Jad

AGENTS.md: prefer hex! literals

Documented the test-style preference in AGENTS.md to prefer hex!
literals for Rust unit-test byte arrays/constants.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
documentation-only discount
Lower-prioritycardano: harden Cardano host xpub derivation checksby Jad · bfc8bfdd · Mar 10, 2026 · 3 filesMessage 73 · AdequateTriage 8Details
Commit message · Jad

cardano: harden Cardano host xpub derivation checks

Cardano host-facing xpub usage now follows the same bitflip-mitigation
pattern already used for critical Bitcoin xpub operations.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
defensive validation
Lower-priorityAGENTS: add review guidelinesby Marko Bencun · 3b0b85d5 · Mar 9, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

AGENTS: add review guidelines

Document review guidance for removed function calls.

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
documentation-only discount
Lower-priorityda14531.c: fix name len in memcpyby Marko Bencun · 75629365 · Mar 7, 2026 · 1 fileMessage 80 · StrongTriage 0Details
Commit message · Marko Bencun

da14531.c: fix name len in memcpy

The BLE name was always <63 bytes due to validation in the
SetDeviceName API call, but since the function itself truncates to the
payload size when copying to the payload stack array, it should also
do so when passing its length to da14531_protocol_format.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI review queueddelay: remove unused delay_is_elapsedby Marko Bencun · d7eba581 · Mar 7, 2026 · 3 filesMessage 35 · OpaqueTriage 0Details
Commit message · Marko Bencun

delay: remove unused delay_is_elapsed

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
Lower-prioritybitbox02/delay: call delay_cancel after initby Marko Bencun · b07b98ba · Mar 7, 2026 · 1 fileMessage 72 · AdequateTriage 0Details
Commit message · Marko Bencun

bitbox02/delay: call delay_cancel after init

Otherwise after 10 uses of delay_for().await, there is a `Too many
concurrent delays` abort.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Explains rationale or failure mode
Lower-priorityBuild: move host hardware fakes into bitbox02-sysby Cedric Wiese · 191a5982 · Mar 5, 2026 · 8 filesMessage 57 · ThinTriage 0Details
Commit message · Cedric Wiese

Build: move host hardware fakes into bitbox02-sys

also stabilize fatfs diskio linking

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityworkflow: use std::println! over C printf in C simulatorby Marko Bencun · 24b9cbae · Mar 3, 2026 · 1 fileMessage 65 · AdequateTriage 0Details
Commit message · Marko Bencun

workflow: use std::println! over C printf in C simulator

No need to depend on bitbox02/C for this.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-priorityhal: add print_screen to Hal Uiby Marko Bencun · 0cedfa0d · Mar 3, 2026 · 9 filesMessage 68 · AdequateTriage 0Details
Commit message · Marko Bencun

hal: add print_screen to Hal Ui

The `print_debug_internal` function is removed from bitbox02_rust as
it depends on bitbox02, but one can use the print_screen HAL fn
instead.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-priorityrust-c: rename alloc module to c_allocby Marko Bencun · d4a29363 · Mar 3, 2026 · 3 filesMessage 68 · AdequateTriage 0Details
Commit message · Marko Bencun

rust-c: rename alloc module to c_alloc

Rename the internal allocator module in bitbox02-rust-c from `alloc`
to `c_alloc`.

This avoids a name clash with the Rust `alloc` crate, whichwill be
imported explicitly in a follow-up commit.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI review queuedhal: add resetby Marko Bencun · d85daea2 · Mar 2, 2026 · 4 filesMessage 28 · OpaqueTriage 0Details
Commit message · Marko Bencun

hal: add reset

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI review queuedUi: Display address in groups of 4 charactersby Cedric Wiese · a871abc7 · Mar 2, 2026 · 12 filesMessage 45 · ThinInformational 15Details
Commit message · Cedric Wiese

Ui: Display address in groups of 4 characters

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 only changes how wallet addresses are shown on the BitBox02 screen. It inserts spaces every four characters (for example, a Bitcoin address becomes "bc1q k5f9 em9q ..." instead of one long string). There is no code that changes security logic, cryptography, or how transactions are approved. It is a user-experience improvement to make long addresses easier to read and compare.

Security candidatereplace asf4 C ringbuffer with Rust ByteQueueby Marko Bencun · 4c69f5c5 · Mar 2, 2026 · 26 filesMessage 45 · ThinLow 38Details
Commit message · Marko Bencun

replace asf4 C ringbuffer with Rust ByteQueue

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update pathparser or protocol path
AI analysis · Low 38/100

This commit swaps out an old C ringbuffer for a new Rust-based byte queue used to hold data sent to the Bluetooth chip. The change touches many files but is mostly a rewrite/refactor. It removes several explicit 'will it fit?' size checks before adding data to the queue, and it changes how callers pass the queue around. The Rust ByteQueue implementation itself is not shown in the diff, so we cannot verify whether it safely handles overflow, memory allocation failures, or concurrent access. The change is therefore a security-relevant refactor with some risk, but no proven vulnerability is visible in the supplied commit.

Lower-priorityadd bitbox-bytequeue workspace crateby Marko Bencun · ad7f8c9b · Mar 2, 2026 · 9 filesMessage 80 · StrongTriage 0Details
Commit message · Marko Bencun

add bitbox-bytequeue workspace crate

Trivial wrapper around `VecDeque`, with methods and a C API matching the
asf4 utils_ringbuffer.h interface shape. With a similar API, we can replace
all uses of it easily.

The old C ringbuffer was fixed-size and not heap allocated. This queue uses
`VecDeque` and panics once we go above the intended fixed size to avoid
filling RAM in case of bugs.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Lower-prioritybitbox02-sys/build.rs: remove duplicate da14531_power_downby Marko Bencun · 46fa14bc · Mar 2, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Marko Bencun

bitbox02-sys/build.rs: remove duplicate da14531_power_down

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedhal: add communication_timeout_resetby Marko Bencun · eae607ad · Mar 2, 2026 · 5 filesMessage 35 · OpaqueTriage 0Details
Commit message · Marko Bencun

hal: add communication_timeout_reset

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