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
281commits · 30 days
709commits · 60 days
1660commits · 180 days
2693commits · 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 27 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.

AI review queuedfix(core/rust): fix UB due to unaligned access in protobuf codecby matejcik · 5a0f3a62 · Oct 23, 2025 · 5 filesMessage 74 · AdequateModerate 61Details
Commit message · matejcik

fix(core/rust): fix UB due to unaligned access in protobuf codec

74/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Moderate 61/100

This commit fixes undefined behavior in the Rust-based protobuf codec inside Trezor firmware. The code was reading multi-byte integers from data files that were not guaranteed to be properly aligned in memory, which can cause crashes or unpredictable behavior on some hardware. The patch ensures the data files are loaded with correct memory alignment and removes the use of 'packed' structs that forced unaligned access. It is a defensive hardening fix rather than a confirmed remote exploit.

AI review queueddocs(python): changelog for 0.20.0-dev0by matejcik · 9faa614a · Oct 20, 2025 · 22 filesMessage 57 · ThinInformational 15Details
Commit message · matejcik

docs(python): changelog for 0.20.0-dev0

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
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is purely a documentation update: it gathers individual changelog fragments into the main CHANGELOG.md file for the Python trezorlib package version 0.20.0-dev0. No program code was changed, so it cannot by itself introduce or fix a security vulnerability.

AI review queuedchore(test): add payment requests test case used in connect-e2e tests [no changelog]by M1nd3r · 27fa2a17 · Oct 18, 2025 · 3 filesMessage 87 · StrongInformational 15Details
Commit message · M1nd3r

chore(test): add payment requests test case used in connect-e2e tests
[no changelog]

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds a new test case and updates expected test screenshots. It does not change the actual Trezor firmware code that users run. The new test verifies that a payment request without a memo or nonce behaves as expected and does not trigger a nonce-reuse error. There is no security fix or vulnerability here.

AI review queuedchore: warning for Ripple destination tag missingby Ioan Bizău · 99b3f9fb · Oct 16, 2025 · 9 filesMessage 57 · ThinInformational 20Details
Commit message · Ioan Bizău

chore: warning for Ripple destination tag missing

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100

This commit adds a user-facing warning in Trezor hardware wallets when signing a Ripple transaction that does not include a destination tag. Destination tags are often required by exchanges to credit the correct account, so missing one can lead to lost funds. The change only shows an extra warning screen; it does not alter how transactions are validated or signed.

AI review queuedchore: let br_code be Warningby Ioan Bizău · cb65178a · Oct 16, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

chore: let br_code be Warning

[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a minor internal cleanup change in the Trezor hardware wallet firmware. It removes explicit button-request type labels from two warning screens in the Ripple and Stellar cryptocurrency apps, letting them default to a generic 'Warning' category instead of 'ConfirmOutput'. There is no visible security bug or vulnerability being fixed.

AI review queuedfeat: 32 bytes amount in ETH payment requestsby Ioan Bizău · abb2816c · Oct 16, 2025 · 15 filesMessage 57 · ThinLow 36Details
Commit message · Ioan Bizău

feat: 32 bytes amount in ETH payment requests

[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 36/100

This commit changes how payment-request amounts are encoded in Trezor firmware. Previously amounts were 8-byte numbers; now they can be 8 or 32 bytes, with 32 bytes used for Ethereum/EVM transactions. The change is a feature update to support larger EVM token amounts, not a clearly disclosed security fix. It does add length checks and an overflow guard, which reduces risk, but the change touches the trusted payment-request verification path, so any bug there could affect what amount the user is asked to approve.

AI review queuedchore(tests): long values in payment requestsby Ioan Bizău · ba67a2de · Oct 16, 2025 · 2 filesMessage 67 · AdequateInformational 12Details
Commit message · Ioan Bizău

chore(tests): long values in payment requests

[no changelog]

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100

This commit only adds new automated tests. It checks that Trezor devices correctly reject payment-request amounts encoded with the wrong number of bytes (for Bitcoin) or values that are too large (for Ethereum). There is no change to the actual firmware or production code, and the commit message explicitly marks itself as a test-only chore with no changelog.

AI review queuedchore(core): Crowdin partial syncby obrusvit · 8da475da · Oct 15, 2025 · 10 filesMessage 72 · AdequateInformational 15Details
Commit message · obrusvit

chore(core): Crowdin partial sync

- including gen and fixtures

[no changelog]

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine translation and localization update for the Trezor firmware. It updates translated user-facing strings in several languages, fixes a typo ('minumum' to 'minimum'), adjusts some strings to be device-layout-specific, and refreshes the corresponding UI test fixture hashes. There is no code behavior change and no security impact.

AI review queuedchore(core): sign translationsby obrusvit · 09907258 · Oct 14, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · obrusvit

chore(core): sign translations

- note: translations are signed from branch
`release/translations/25.10.21`

[no changelog]

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply adds a new cryptographic signature to a list that verifies official language translation files for the Trezor hardware wallet. It does not change any code, fix any bug, or introduce any security weakness. It is a routine administrative update so devices can trust the latest translation pack.

AI review queuedchore(tests): generate certificate chain for Tropicby Ioan Bizău · 46b5510e · Oct 14, 2025 · 4 filesMessage 72 · AdequateInformational 15Details
Commit message · Ioan Bizău

chore(tests): generate certificate chain for Tropic

[no changelog]

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

This commit only adds four test-only certificate and private-key files under the tests/tropic_model directory. They are clearly labeled as test fixtures, not used in production firmware, and the commit message explicitly says '[no changelog]'. There is no code change and no indication of a security fix or vulnerability.

AI review queuedfix(core): fix crash when setting wipe codeby tychovrahe · 66b0a65e · Oct 12, 2025 · 1 fileMessage 72 · AdequateLow 29Details
Commit message · tychovrahe

fix(core): fix crash when setting wipe code

[no changelog]

(cherry picked from commit da76bd501dd1bfefba472a969f213253ac6fc7cf)

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: broader security terminology
AI analysis · Low 29/100

This commit fixes a crash that could occur when setting or changing the Trezor device's wipe code. The fix moves a memory-protection reconfiguration call to happen before user-interface progress is initialized. The crash appears to be a reliability bug rather than a security vulnerability that an attacker could exploit to steal funds or bypass protections.

AI review queuedfix(core): fix crash when setting wipe codeby tychovrahe · da76bd50 · Oct 10, 2025 · 1 fileMessage 57 · ThinLow 40Details
Commit message · tychovrahe

fix(core): fix crash when setting wipe code

[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
second-pass: broader security terminology
AI analysis · Low 40/100

This commit fixes a crash that could occur when setting or changing the Trezor device's wipe code (a special PIN that wipes the device). The fix moves a memory-protection reconfiguration call earlier, before user-interface progress initialization. The crash appears to be a reliability bug rather than a security vulnerability that would let an attacker steal funds, but a crash during security-sensitive wipe-code setup could disrupt the user experience or potentially be used in a denial-of-service scenario.

AI review queuedchore(core): remove unused translations per layoutby obrusvit · 1b5250c7 · Oct 8, 2025 · 9 filesMessage 62 · AdequateInformational 15Details
Commit message · obrusvit

chore(core): remove unused translations per layout

[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
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine cleanup of translation strings in the Trezor firmware. It changes how some text labels are stored so that different device screen layouts (Bolt, Caesar, Delizia, Eckhart) can have their own versions of the same string, often leaving unused layouts with an empty string. There is no indication this fixes or introduces a security vulnerability.

AI review queuedchore(core): pull some translations from Crowdinby obrusvit · f24354b9 · Oct 7, 2025 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): pull some translations from Crowdin

[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
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only updates translated user-interface text strings for Bluetooth-related screens in several language files. It adds labels like 'Apps connected', 'Host info', 'MAC Address', and 'Waiting for host' in Czech, German, Spanish, French, Italian, and Portuguese, and refreshes the translation signature metadata. There is no executable code change, no security fix, and no vulnerability introduced.

AI review queuedfeat(core/eckhart): progress copy to use ellipsisby obrusvit · e301c5a6 · Oct 7, 2025 · 8 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

feat(core/eckhart): progress copy to use ellipsis

[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
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only changes user-facing text strings. It adds an ellipsis (three dots) to progress messages like "Please wait" and "Processing" for the new "Eckhart" device layout, while keeping the old wording for older layouts. It also updates the translation files and their cryptographic signature metadata. There is no code behavior change and no security relevance.

AI review queuedfeat(core): notify host about channel replacement [no changelog]by M1nd3r · 8892eee0 · Oct 1, 2025 · 2 filesMessage 77 · AdequateLow 27Details
Commit message · M1nd3r

feat(core): notify host about channel replacement
[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This commit adds a new device state flag so the Trezor hardware wallet can tell a connected computer: 'this session replaced an existing channel, so the user does not need to confirm again.' The host-side library is updated to recognize the new state. It is a feature change, not an obvious vulnerability fix, but it touches the authentication/authorization boundary between device and host.

AI review queuedchore(core): shorten french stringby obrusvit · bde7f27e · Oct 1, 2025 · 3 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): shorten french string

[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply shortens a French translation string used on the device screen. It changes 'Effacer les données de l'appareil' to 'Effacer l'appareil' and updates the corresponding translation signature file and UI test snapshots. There is no code behavior change and no security relevance.

AI review queuedfix(prodtest): Hotfix for invalid Infineon certificate format.by Andrew Kozlik · fda38e88 · Sep 30, 2025 · 1 fileMessage 62 · AdequateInformational 20Details
Commit message · Andrew Kozlik

fix(prodtest): Hotfix for invalid Infineon certificate format.

[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
second-pass: broader security terminology
AI analysis · Informational 20/100

This commit is a small hotfix in Trezor's factory production-test tool (prodtest), which is used during manufacturing, not in normal end-user wallets. It changes how a certificate read from the Infineon OPTIGA secure chip is parsed. Previously, the code carefully checked a multi-certificate chain format; now it simply skips 9 bytes and assumes there is only one certificate. The change removes safety checks and could make the tool accept malformed or unexpected certificate data, but it only affects an internal manufacturing diagnostic command, not the wallet firmware users rely on for funds.

AI review queuedfix: add progress when requesting extra databy Ioan Bizău · f7239a7f · Sep 29, 2025 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

fix: add progress when requesting extra data

[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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds on-screen progress indicators to several cryptocurrency signing flows (EOS, Ethereum, Stellar). It does not change any security logic, cryptography, or transaction validation. The large diff is mostly updated test screenshot fingerprints (fixtures.json) because the new progress screens change the device's displayed images during automated UI tests.

AI review queuedchore(core): sign translationsby obrusvit · 2f9f2100 · Sep 29, 2025 · 1 fileMessage 47 · ThinInformational 15Details
Commit message · obrusvit

chore(core): sign translations

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds a new cryptographic signature entry to a JSON file that records approved translation bundles for the Trezor hardware wallet. There is no code change and no visible security defect. It appears to be a routine administrative step to authorize a new set of translated strings.

AI review queuedchore(core): backup needed info translationsby obrusvit · 671847de · Sep 25, 2025 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): backup needed info translations

[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
signing or wallet pathtranslation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds translated text strings for a new 'backup needed' message shown on the device home screen. It does not change any code logic, security checks, or cryptographic operations. The signatures.json file is updated to record the new translation bundle hash, which is a normal bookkeeping step for signed translation assets.

AI review queuedfeat(core/prodtest): Check device certificate chain before storing it.by Andrew Kozlik · b4766692 · Sep 25, 2025 · 2 filesMessage 62 · AdequateLow 42Details
Commit message · Andrew Kozlik

feat(core/prodtest): Check device certificate chain before storing it.

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

This commit moves a certificate-chain validation check so it runs before a device certificate is permanently stored in secure hardware, rather than after. Previously, an invalid device certificate could be written to the chip before the code noticed and rejected it. The change is in factory production-test tools (prodtest), not normal user wallet firmware, so it mainly affects manufacturing/ provisioning rather than end-user devices in the field.

AI review queuedchore(core): sync some Crowdinby obrusvit · 1b8a8002 · Sep 23, 2025 · 8 filesMessage 72 · AdequateInformational 15Details
Commit message · obrusvit

chore(core): sync some Crowdin

- another batch of sync but not complete, these should be mergeable
without pain

[no changelog]

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine synchronization of translated user-interface text strings for the Trezor hardware wallet firmware. It updates wording in several language files (Czech, German, Spanish, French, Italian, Portuguese) and refreshes the corresponding digital signature and UI test snapshot records. There are no code logic changes, no security fixes, and no changes to how the device protects private keys or signs transactions.

AI review queuedfix(core): don't raise `ThpError` on low-level protocol errorsby Roman Zeyde · c39a65ab · Sep 22, 2025 · 5 filesMessage 85 · StrongLow 46Details
Commit message · Roman Zeyde

fix(core): don't raise `ThpError` on low-level protocol errors

`ThpError` ends up being sent over the protocol as `MessageType_Failure`,
but in case of a low-level problem (e.g. unexpected SEQ bit), it is
probably better to ignore the offending message.

We should also not raise `ThpError` when a function is called with invalid
arguments (e.g. bit value not being 0 or 1).

[no changelog]

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
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Low 46/100

This commit changes how the Trezor hardware wallet handles low-level communication errors in its new THP (Trezor Host Protocol) code. Previously, certain malformed or unexpected low-level packets would cause the device to raise a ThpError, which gets sent back to the host as a Failure message. The patch makes the device silently ignore many of these low-level problems instead—such as unexpected control bytes, wrong sequence bits, bad checksums, invalid broadcast lengths, and reassembly overruns. Some internal argument checks are also converted from raising errors to assert statements, which only run in debug builds and are removed in production firmware. The stated intent is to make the protocol more robust against noisy or malformed traffic, but it also reduces the device's visibility into potential attacks or protocol fuzzing.

AI review queuedchore: remove unused ThpError - INVALID_DATA [no changelog]by M1nd3r · 72e55603 · Sep 22, 2025 · 3 filesMessage 77 · AdequateInformational 15Details
Commit message · M1nd3r

chore: remove unused ThpError - INVALID_DATA
[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply removes an unused error code named INVALID_DATA from the Trezor hardware wallet's new THP (Trezor Host Protocol) code. It deletes the numeric constant, the matching Python exception class, and the mapping that translated the error number into that exception. There is no change to how data is validated or how errors are handled; it only cleans up code that was never referenced.