TZ
← All projectsTrezor

Trezor firmware

Firmware monorepo for Trezor One, Model T, and Safe devices.

BitcoinHardware walletsNormal
Repository coverage

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

1132security candidates374second-pass queue2934AI analyses
279commits · 30 days
708commits · 60 days
1660commits · 180 days
2691commits · 365 days
Backfill bands
Aug 5 → Feb 61298 seen115 candidatesComplete
Feb 6 → Jun 6775 seen58 candidatesComplete
Jun 6 → Jul 6217 seen13 candidatesComplete
Jul 6 → Aug 5360 seen54 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.

67/100 average clarity
648Strong · 80–100
1555Adequate · 60–79
1039Thin · 40–59
7Opaque · 0–39
1security candidate 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.
tychovrahe343134322564
Roman Zeyde679216622372
obrusvit25896236364
PrisionMike10866106272
Andrew Kozlik833481268
Petr Susil1048287
Jakub Janků591838180
Martin Pastyřík26823173
cepetr264106222059
M1nd3r24689227071
Ioan Bizău23076230059
Lukas Bielesch856784067
Analysis record

Published AI watches

Last scanned 6 minutes ago

Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

build(crypto): update `crypto/Makefile` to use `-std=gnu11`

This commit simply changes the C language standard version used to compile the crypto library from GNU C99 to GNU C11. It is a routine build-system update with no security-relevant code change and no functional impact on its own.

fafc7d72by Roman Zeyde+1−11 file
No security note in commit
Low 46 AI analysisMessage 93 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(crypto): ensure `secp256k1_context` alignment

This commit fixes how a memory buffer used by the secp256k1 cryptographic library is aligned in memory. The library requires the buffer to be aligned for any data type, but the previous code used a plain byte array, which could be misalign…

Memory alignment hardening for cryptographic context bufferUndefined behavior mitigation in secp256k1-zkp preallocated context creationPotential platform-dependent misalignment risk removed
93860f05by Roman Zeyde+7−11 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): improvements to English copy

This commit is a routine text cleanup for the Trezor hardware wallet's on-screen English messages. It fixes punctuation, removes unnecessary line breaks, and makes small wording tweaks (for example, changing 'PIN will be required' to 'A PI…

1dbc2c3cby Michal Kazda+22−422 files
No security note in commit
Moderate 59 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): app root packet downgrade protection

This commit adds downgrade protection for a new 'app root packet' system in Trezor firmware. Previously, the code had a TODO note saying downgrade protection needed to be considered. The change makes the device remember the timestamps of p…

Replaces a TODO comment ('!@# TODO: Consider downgrade protection') with concrete timestamp-based anti-downgrade checksAdds per-ring timestamp state to prevent rollback of root-of-trust packetsAdds chain_timestamp field and 90-day drift bound to root packet format
4a9cf168by cepetr+335−3112 files
No security note in commit
Moderate 67 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/rust): discard low-order keys in THP handshake

This commit fixes a cryptographic edge case in Trezor's THP (Trezor Host Protocol) handshake. It now rejects Curve25519 public keys that are all zeros or that produce an all-zero shared secret. A zero public key can cause the Diffie-Hellma…

Curve25519 zero/low-order public key rejection added to DHZero shared-secret output rejected after scalar multiplicationHandshake state machine now transitions to Failed on initiation-response error
429a283dby M1nd3r+45−74 files
No security note in commit
Informational 11 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): enable `ward` with `miniscript`

This commit changes one line in a build configuration file for the Trezor hardware wallet firmware. It adds the 'ward' feature to the existing 'miniscript' feature set. There is no direct evidence in the commit that this is a security fix;…

Single-line Cargo.toml feature flag changeNo code logic modificationNo changelog or security note in commit message
d434a636by Jakub Janků+1−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): add `ward` feature flag

This commit adds a new disabled-by-default feature flag called 'ward' to the Trezor firmware build system. It does not change any production firmware behavior; it only wires up a placeholder MicroPython module and build options so that fut…

New feature flag is disabled by default and gated behind optional Cargo featuresCommit message explicitly states intent to exclude WARD from production firmware buildsNew MicroPython module is a stub with no exported functions beyond __name__
7b58e75aby Jakub Janků+55−018 files
No security note in commit
Low 27 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): enable -Wsign-compare

This commit turns on a compiler warning (-Wsign-compare) that catches places where signed and unsigned numbers are compared, and fixes the resulting warnings across the Trezor firmware. Most changes are clean-up casts and loop-index type c…

Compiler warning -Wsign-compare enabled, indicating prior signed/unsigned comparison issuesI/O return-value checks hardened against negative ssize_t values being treated as successPython binding offset/length validation tightened in Monero crypto module
1cc940a4by cepetr+162−15247 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge passphrase__access_hidden_wallet into passphrase__access_wallet

This commit is a simple user-interface cleanup. It removes one duplicate translation label ('Access hidden wallet') and makes the device use a single, consistent label ('Access wallet') when asking the user to confirm opening a passphrase-…

65402aecby Michal Kazda+2−103 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge passphrase__hidden_wallet into passphrase__wallet

This commit is a simple user-interface cleanup. It merges two translation labels that both meant 'Passphrase wallet' into a single label, and updates the screens that used the old duplicate label. There is no security-relevant behavior cha…

7ce6887fby Michal Kazda+5−184 files
No security note in commit
Informational 11 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): update UI fixtures

This commit only updates the expected screenshots (UI fixtures) used in automated tests. The change reflects that multisig account names are now shown on screen during signing for Bitcoin, Bitcoin Cash and Zcash. There is no code change, n…

247390cbby Petr Susil+1873−5891 file
No security note in commit
Low 45 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/bootloader): keep the full block length for block-0 retries

This commit fixes a bug in the Trezor bootloader's firmware-update code. When updating firmware, the first block of data is fetched in two pieces: a small initial 'header prefetch,' then the rest. If a communication error happened and the …

Firmware update reliability bug in bootloaderBlock-0 retry path truncated data before hash verificationHash mismatch caused by buffer offset/size mismatch, not by attacker
dc937ba2by tychovrahe+81−711 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core/bootloader): separate image upload and image checks

This commit is a code cleanup in the Trezor bootloader. It moves the generic, image-type-agnostic parts of firmware upload (chunk receiving, retry logic, flash erasing/writing, timeouts) into a new reusable module called wf_image_upload.c,…

Refactor only: logic moved, not changed in security-relevant waysSame signature/version/model/downgrade checks remain in firmware-specific handlerSame flash erase/write sequence preserved in generic engine
caab7d9eby tychovrahe+772−4834 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove unused trezor_lib/ui feature

This commit removes an unused Rust Cargo feature flag called 'ui' from the Trezor firmware build configuration. It is a cleanup change: the feature was always enabled in practice, so the code now compiles unconditionally. There is no secur…

1436fbc6by cepetr+2−158 files
No security note in commit
Low 27 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/caesar): change confirm middle button

This commit changes how users confirm an Ethereum authorization screen on Trezor's 'Caesar' layout. Previously, the user had to hold down a button to approve; now a simple tap is enough. The change only affects the user-interface interacti…

UI confirmation gesture changed from hold-to-confirm to tap-to-confirmOnly affects EIP-7702 authorization flow on Caesar (T3B1) layoutTest fixture hashes updated for all supported languages
e231cc94by obrusvit+50−502 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge firmware and unix cargo packages

This commit is a routine internal cleanup that merges two separate build packages (one for real hardware firmware and one for the desktop emulator) into a single package. It moves source files into subdirectories and updates build scripts …

6be32440by cepetr+48−32025 files
No security note in commit
Informational 15 AI analysisMessage 67 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): test aes gcm only if enabled

This commit is a minor build/test maintenance change. It adds a feature flag (USE_AES_GCM) so that AES-GCM tests are only run when the feature is actually enabled in a particular firmware build. There is no security fix or vulnerability be…

890aca93by cepetr+13−14 files
No security note in commit
Informational 15 AI analysisMessage 95 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(python, tests): add and update GNU licence headers

This commit only adds or updates copyright and GNU license header comments in Python test and tooling files. It makes no changes to executable code, so it cannot introduce a security vulnerability or fix one.

6dc781c2by M1nd3r+1202−203250 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): move the multisig XPUB title into a translation template

This commit is a straightforward code cleanup: it moves the on-screen title for multisig XPUB screens from hard-coded English text into the device's translation system. The visible text remains essentially the same, and there is no securit…

6d69df16by Michal Kazda+20279−2023911 files
No security note in commit
Informational 15 AI analysisMessage 77 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): render translated strings verbatim in layouts

This is a cosmetic code cleanup. It moves punctuation and capitalization out of the Python code and into the translation files so translated strings are shown exactly as written. There is no security-relevant change.

162ed3a2by Michal Kazda+12−125 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.

Security candidatefix(emulator): initialize mono counters before running bootemuby cepetr · 2db6bd43 · Aug 7, 2026 · 12 filesMessage 62 · AdequateLow 35Details
Commit message · cepetr

fix(emulator): initialize mono counters before running bootemu

[no changelog]

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
boot or update path
AI analysis · Low 35/100

This commit fixes how the Trezor emulator initializes its 'monotonic counters'—security counters that only ever increase and are used to prevent downgrades to older, possibly vulnerable firmware. Before this fix, the emulator did not explicitly initialize these counters before running the boot emulator, which could lead to uninitialized or incorrect counter values during emulator-based testing. The fix adds a dedicated initialization routine and calls it in every relevant firmware component. On real hardware the initialization is currently a no-op, so this primarily affects the Unix/emulator build used for development and testing.

Security candidatefix(crypto): make aes functions reject negative lengthby M1nd3r · a64989a7 · Aug 6, 2026 · 4 filesMessage 62 · AdequateLow 47Details
Commit message · M1nd3r

fix(crypto): make aes functions reject negative length

[no changelog]

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
cryptography-sensitive pathboot or update path
AI analysis · Low 47/100

This commit fixes a bug in Trezor's AES encryption/decryption code where a negative length value could be passed to low-level AES functions. Previously, those functions treated the signed length as a large unsigned number, which could cause them to read or write far beyond the intended memory buffer. The patch makes every AES mode reject negative lengths and adds error handling so callers fail safely instead of silently producing bad results or touching memory they shouldn't.

Security candidatechore(rust/trezor-client): move contributor list to AUTHORSby Martin Milata · c207d393 · Aug 6, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · Martin Milata

chore(rust/trezor-client): move contributor list to AUTHORS

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
authentication path
AI analysis · Informational 15/100

This commit simply moves the list of contributors from two places (a package metadata file and the README) into a single dedicated AUTHORS file. It is a routine housekeeping change with no security relevance.

AI review queuedfix(build-docker): stop swallowing pub-bin copy errorsby Andrew Kozlik · d829eda8 · Aug 6, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · Andrew Kozlik

fix(build-docker): stop swallowing pub-bin copy errors

kernel never has a pub bin, and secmon has none when built only as a
firmware dependency; skip the copy in those known-benign cases instead
of producing "cp: cannot stat" noise and blanket-ignoring cp's exit
status, so a genuine copy failure is no longer silently discarded.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This change fixes a build script that was ignoring copy errors. Previously, the script would silently ignore any failure when copying public binary files, which could hide real problems. Now it only skips the copy when the file genuinely doesn't exist for known cases (the kernel, and secmon when built as a dependency), and will report actual copy failures.

Security candidaterefactor(core): digest EIP-1559/EIP-7702 magic without RLP encodingby Roman Zeyde · 2362bc6f · Aug 6, 2026 · 2 filesMessage 93 · StrongLow 27Details
Commit message · Roman Zeyde

refactor(core): digest EIP-1559/EIP-7702 magic without RLP encoding

The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702#behavior) spec defines the hashing process as:
```
msg = keccak(MAGIC || rlp([chain_id, address, nonce]))
```

It would make more sense to use `sha.append(_MAGIC)` --- this way we do not need to rely on the assumption that RLP encodes small integers to their byte representation.

Note that the same goes for [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559#specification):
```
keccak256(0x02 || rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, amount, data, access_list]))
```

[no changelog]

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
signing or wallet pathauthentication path
AI analysis · Low 27/100

This commit is a small internal cleanup in Trezor's Ethereum signing code. It changes how two special 'magic' bytes (the transaction type markers for newer Ethereum transaction formats) are fed into the cryptographic hash. Previously the code used the general RLP encoder to write the single-byte marker; now it appends the raw byte directly. The commit message says this avoids relying on the assumption that RLP encodes small integers as a single byte. There is no direct evidence in the commit or supplied references that this fixes an exploitable vulnerability, but it removes a fragile assumption in security-critical hashing code.

Security candidatetest(core): test RLP self-encoding bytestringsby Roman Zeyde · 41538733 · Aug 6, 2026 · 1 fileMessage 98 · StrongInformational 15Details
Commit message · Roman Zeyde

test(core): test RLP self-encoding bytestrings

Adds an exhaustive test for this specific case.

https://ethereum.org/developers/docs/data-structures-and-encoding/rlp/#definition

[no changelog]

98/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only adds a new unit test to the Trezor firmware codebase. It verifies that very short Ethereum RLP-encoded byte strings and small positive integers encode to themselves, which is a known property of the RLP specification. No production code was changed, and there is no security fix or vulnerability present in the diff.

AI review queueddocs: fix links outside book rootby Martin Milata · 0d8d4b1b · Aug 5, 2026 · 10 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

docs: fix links outside book root

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
parser or protocol pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only fixes broken or awkward documentation links inside the project's user guide. It replaces relative links that point outside the documentation folder with internal placeholder files or direct GitHub URLs. There is no change to any firmware, software, or cryptographic code, and no security impact.

Security candidatechore(core): remove sha1 from regular FWby M1nd3r · 16d15774 · Aug 5, 2026 · 6 filesMessage 57 · ThinInformational 18Details
Commit message · M1nd3r

chore(core): remove sha1 from regular FW

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 18/100

This commit removes the SHA-1 hashing function from the regular Trezor firmware. SHA-1 is an old, weak hash algorithm that is no longer considered secure for sensitive uses. The change deletes the code that exposes SHA-1 to apps running on the device, along with related tests and benchmarks. It is a hardening/cleanup change rather than a fix for an active bug or exploit.

Security candidaterefactor(crypto): pass static public key to `noise_xxpsk3_*_init()`by Ondřej Vejpustek · 1b3128a4 · Aug 5, 2026 · 2 filesMessage 62 · AdequateLow 27Details
Commit message · Ondřej Vejpustek

refactor(crypto): pass static public key to `noise_xxpsk3_*_init()`

[no changelog]

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
cryptography-sensitive path
AI analysis · Low 27/100

This commit changes how a cryptographic library sets up secure connections. Previously, the code automatically calculated the public key from the private key. Now, the caller must provide the public key directly. This is a code-quality refactor that reduces the risk of using mismatched keys, but the commit itself does not claim to fix a specific security bug and no exploit is described.

Security candidaterefactor(crypto): change order of parametersby Ondřej Vejpustek · 33a119ee · Aug 5, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Ondřej Vejpustek

refactor(crypto): change order of parameters

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit simply reorders the arguments of an internal function called dh() and updates every place that calls it. The actual math and security behavior are unchanged; it is a code cleanup with no security effect.

Security candidaterefactor(crypto): prefix enumsby Ondřej Vejpustek · f1c74046 · Aug 5, 2026 · 2 filesMessage 47 · ThinInformational 15Details
Commit message · Ondřej Vejpustek

refactor(crypto): prefix enums

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit simply renames two groups of internal status labels (called enums) in the Trezor firmware's cryptographic code. The old names like WAITING_FOR_REQUEST1 were shared between two different parts of the code, so the developer gave them longer, unique names that include which part they belong to. The actual numeric values and program behavior are unchanged. There is no security fix or vulnerability here.

Security candidatefix(crypto): prevent calling `memzero(NULL, ...)`by Ondřej Vejpustek · 0394e934 · Aug 5, 2026 · 1 fileMessage 57 · ThinLow 37Details
Commit message · Ondřej Vejpustek

fix(crypto): prevent calling `memzero(NULL, ...)`

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Low 37/100

This commit fixes three places in the Trezor firmware's cryptographic code where a memory-clearing function could be called with a NULL pointer. In practice, passing NULL to memzero is harmless on Trezor's platform (it does nothing), but it is undefined behavior in C and could cause a crash or unpredictable results on other systems. The change adds simple NULL checks before clearing plaintext output and before wiping responder/initiator objects during cleanup.

Security candidaterefactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`by Ondřej Vejpustek · 3ead1aa6 · Aug 5, 2026 · 3 filesMessage 62 · AdequateInformational 18Details
Commit message · Ondřej Vejpustek

refactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`

[no changelog]

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
cryptography-sensitive path
AI analysis · Informational 18/100

This commit is a code cleanup (refactor) for the cryptographic handshake code used in Trezor devices. It changes how the other party's long-term public key is returned to the caller: instead of storing it inside an internal state structure, the function now writes it into a buffer supplied by the caller. The commit message explicitly calls it a refactor and includes '[no changelog]', indicating it is not being presented as a security fix. There is no direct evidence in the diff that this change fixes an active vulnerability, but it does reduce the amount of sensitive key material kept in internal state and gives callers explicit control over the output buffer, which is generally a defensive improvement.

Lower-priorityrefactor(xtask): rename ProjectProfile to ProjectConfigby cepetr · 581b37bc · Aug 5, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · cepetr

refactor(xtask): rename ProjectProfile to ProjectConfig

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a simple rename from 'ProjectProfile' to 'ProjectConfig' in two Rust source files. It only changes variable names, struct names, and error messages. There is no change to program logic, security behavior, or how data is handled.

Lower-priorityrefactor(xtask): introduce ResolvedBuildArgsby cepetr · c24d1be8 · Aug 5, 2026 · 5 filesMessage 47 · ThinInformational 15Details
Commit message · cepetr

refactor(xtask): introduce ResolvedBuildArgs

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a straightforward internal code refactor in Trezor's build tooling. It introduces a new ResolvedBuildArgs structure that centralizes default values for command-line build options before they are used. There is no change to user-facing behavior, no fix for a bug, and no security-related change.

Lower-priorityrefactor(xtask): make build args tristateby cepetr · 271e249a · Aug 5, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · cepetr

refactor(xtask): make build args tristate

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a straightforward internal refactor of the Trezor firmware build tool's command-line argument handling. It changes many on/off flags from plain booleans to optional booleans so they can explicitly be set to true, false, or left unset. There is no security-relevant behavior change: when a flag is not provided, it still defaults to false, exactly as before.

Lower-priorityrefactor(xtask): introduce build optionsby cepetr · 75085e2a · Aug 5, 2026 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr

refactor(xtask): introduce build options

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a straightforward internal code reorganization in Trezor's build tooling. It moves build-option definitions from one Rust source file to a new module and adds the ability to load those options from a configuration file. There is no change to the actual firmware behavior, no bug fix, and no security-related change.

Lower-priorityfeat(xtask): introduce build presetsby cepetr · eefe8f7f · Aug 5, 2026 · 9 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr

feat(xtask): introduce build presets

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a developer tooling change for the Trezor firmware build system. It introduces 'build presets'—named configuration bundles stored in TOML files—so developers can select common build settings with a single command-line flag instead of typing many options. It does not change how the device works, how funds are protected, or any cryptographic code. There is no indication this is a security fix or vulnerability patch.

Lower-priorityfeat(xtask): upgrade manifest.yaml for tf-tools 0.3.0by cepetr · 57b28b89 · Aug 5, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · cepetr

feat(xtask): upgrade manifest.yaml for tf-tools 0.3.0

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a routine update to a build-system manifest file used by Trezor's internal tooling. It reorganizes and re-labels feature flags (for example, moving options between 'Features', 'Debugging', and 'Signing' groups and simplifying some multi-state options to checkboxes). There is no change to the actual firmware code, cryptographic logic, or security behavior of Trezor devices.

Lower-priorityfeat(core): add tf-tools 0.3.1+ configuration fileby cepetr · e554f618 · Aug 5, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · cepetr

feat(core): add tf-tools 0.3.1+ configuration file

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit adds a single configuration file for a Trezor developer tool (a VS Code extension). It only points the tool to existing folders in the repository and contains no executable code, no secrets, and no changes to firmware behavior. There is no security issue visible in the diff.

Lower-priorityrefactor(xtask): rename ResolvedBuild to ResolvedBuildFeaturesby cepetr · aaa2780b · Aug 5, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · cepetr

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a simple internal code cleanup: it renames a Rust data structure called ResolvedBuild to ResolvedBuildFeatures and updates the places that use it. There are no functional changes, no security fixes, and no changes to how the software behaves or protects secrets.

Lower-priorityfix(core): fix up clippy warnings in storage.rsby cepetr · 62354461 · Aug 5, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · cepetr

fix(core): fix up clippy warnings in storage.rs

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This is a tiny code cleanup commit that replaces two calls to `ptr::null()` with Rust's `unwrap_or_default()` to silence automated Clippy lint warnings. It does not change what value is produced (still a null pointer when no salt is provided) and has no functional or security effect.

Lower-priorityrefactor(xtask): simplify dependenciesby cepetr · 6268349f · Aug 5, 2026 · 3 filesMessage 47 · ThinInformational 15Details
Commit message · cepetr

refactor(xtask): simplify dependencies

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a straightforward internal code cleanup in Trezor's build tooling. It moves a data structure and two helper methods from one Rust source file to another and updates callers accordingly. There is no change to user-facing behavior, no change to cryptographic or security-sensitive code, and no indication of a vulnerability fix.

Lower-prioritydocs: add xtask documentationby cepetr · 4879daba · Aug 5, 2026 · 3 filesMessage 47 · ThinInformational 15Details
Commit message · cepetr

docs: add xtask documentation

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only adds documentation. It updates the table of contents and adds a new markdown page plus a diagram explaining the project's 'xtask' build helper. No code, build scripts, or firmware logic was changed, so it cannot introduce a security vulnerability or fix one.

Security candidatefeat(xtask): introduce project-toml build-optionsby cepetr · d44de007 · Aug 5, 2026 · 17 filesMessage 57 · ThinInformational 17Details
Commit message · cepetr

feat(xtask): introduce project-toml build-options

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 17/100

This commit is a build-system refactoring for Trezor firmware. It moves the mapping of command-line build options to Rust/cargo features out of hard-coded Rust logic and into per-project TOML files. It also adds a small change so debug builds automatically enable the 'debug-link' option. There is no direct vulnerability in the diff, but any mistake in the new TOML mappings could accidentally enable or disable security-relevant features in a shipped firmware image.