TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

1125security candidates372second-pass queue2925AI analyses
297commits · 30 days
701commits · 60 days
1641commits · 180 days
2707commits · 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
635Strong · 80–100
1551Adequate · 60–79
1036Thin · 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 Zeyde675214620372
obrusvit25395235364
PrisionMike10866106272
Andrew Kozlik833481268
Petr Susil202299
Jakub Janků591838180
Martin Pastyřík26823173
cepetr264106222059
M1nd3r24689227071
Ioan Bizău23076230059
Lukas Bielesch856784067
Analysis record

Published AI watches

Last scanned 11 minutes ago

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
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
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core/bolt): remove unneeded `use` statements

This commit simply removes two unused Rust import statements (called `use` statements). It does not change any actual code behavior, logic, or security properties of the Trezor firmware.

a56f8c3dby Roman Zeyde+0−22 files
No security note in commit
Informational 18 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): add missing colon in Tron

This commit fixes a UI formatting bug in the Tron cryptocurrency flow on Trezor hardware wallets. A missing colon was added to account information labels shown on the device screen. The change is cosmetic and does not appear to affect cryp…

UI label formatting fix onlyNo changes to signature verification, key handling, or transaction authorizationNo buffer size, memory allocation, or input validation changes observed
739c2968by Michal Kazda+19332−193364 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): combine path/account with labels

This commit is a straightforward user-interface refactoring. It bundles an account/path label together with its corresponding value into a single tuple, instead of passing them as four separate arguments. There is no security-relevant chan…

c66f6f4dby Michal Kazda+51−7413 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(solana): fall back to generic UI if stake lockup setby Jakub Janků · 5a530509 · Aug 11, 2026 · 2 filesMessage 93 · StrongModerate 60Details
Commit message · Jakub Janků

fix(solana): fall back to generic UI if stake lockup set

Prior to this change, the predefined staking flow allowed
lockup.custodian = _SYSTEM_PROGRAM_ID, lockup.epoch > 0, and
lockup.unix_timestamp > 0. However, these values were not displayed
to the user. This could lead to the user loosing access to their
funds if the time values were set to distant future.

The change should not modify the behavior when working with Suite since
it generates init instructions with lockup.epoch=0 and
lockup.unix_timestamp=0:

https://github.com/trezor/trezor-suite/blob/7de6f3e/networks/solana/network-solana/src/runtime/stakingUtils.ts#L104-L118

Partially fixes: https://github.com/satoshilabs/trezor-firmware/issues/325

(cherry picked from commit 5a12ad231741e0406f9d7f7a0b2e15a7237f0bbd)

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 pathsecond-pass: security-sensitive path
AI analysis · Moderate 60/100

This update fixes a security gap in Trezor's handling of Solana staking. Previously, if someone set up a stake account with a future unlock date (a 'lockup') using values that Trezor's normal flow didn't expect, the device would silently approve the transaction without showing those lockup details on screen. That could trap a user's funds until a far-future date. The fix makes Trezor fall back to a more detailed, generic confirmation screen whenever a lockup is present, so the user can see and approve the terms explicitly.

AI review queuedfeat(nfc): Update RFAL library to version 4.2.0 due to added presence check on ISO-DEP layerby Ludek Farsky · 6e2dbb91 · Aug 10, 2026 · 62 filesMessage 74 · AdequateLow 32Details
Commit message · Ludek Farsky

feat(nfc): Update RFAL library to version 4.2.0 due to added presence check on ISO-DEP layer

[no changelog]

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

This commit upgrades the third-party STMicroelectronics NFC middleware (RFAL) inside Trezor firmware from version 4.0.2 to 4.2.0. The stated reason is to add a 'presence check' in the ISO-DEP layer, which helps the device verify that an NFC card is still nearby during a transaction. The diff is almost entirely a bulk import of ST's updated library files, so the actual security-relevant changes are not visible in the commit itself. There is no Trezor changelog entry and no CVE or advisory referenced.

AI review queuedtest(core): drop an unused parameter of `make_payment_request()`by Roman Zeyde · 6dd19fdc · Aug 8, 2026 · 8 filesMessage 72 · AdequateInformational 15Details
Commit message · Roman Zeyde

test(core): drop an unused parameter of `make_payment_request()`

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

This commit only cleans up test code by removing an unused 'session' argument from a helper function used in automated tests. It does not change the actual Trezor firmware or any code that runs on the device, so it has no security impact for users.

AI review queuedbuild(core): drop stale trezor_lib dependency from kernelby matejcik · 7e64fef5 · Aug 7, 2026 · 3 filesMessage 62 · AdequateInformational 12Details
Commit message · matejcik

build(core): drop stale trezor_lib dependency from kernel

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

This is a routine build cleanup in the Trezor firmware kernel. It removes an unused Rust library dependency called 'trezor_lib' and replaces it with a reference to another module ('io') to ensure certain Rust symbols are still included during linking. There is no indication this change fixes or introduces a security vulnerability.

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.

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.

AI review queuedrefactor(core/ethereum): simplify `sign_tx()` digest flowby Roman Zeyde · e07499da · Aug 4, 2026 · 1 fileMessage 85 · StrongInformational 12Details
Commit message · Roman Zeyde

refactor(core/ethereum): simplify `sign_tx()` digest flow

De-duplicate RLP `fields` definition and better encapsulate RLP length
and digest computation - see `_start_digest` and `_finish_digest`.

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

This commit is a straightforward internal code cleanup in the Ethereum transaction signing module. It moves existing digest-calculation logic into two new helper functions, _start_digest() and _finish_digest(), without changing what data is hashed or how the transaction is signed. There is no indication of a security fix or behavior change.

AI review queuedrefactor(core/ethereum): simplify `sign_tx_eip1559()` digest flowby Roman Zeyde · 3d2b70cf · Aug 3, 2026 · 1 fileMessage 85 · StrongInformational 12Details
Commit message · Roman Zeyde

refactor(core/ethereum): simplify `sign_tx_eip1559()` digest flow

De-duplicate RLP `fields` definition and better encapsulate RLP length
and digest computation - see `_start_digest` and `_finish_digest`.

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

This commit is a code cleanup (refactor) for how Trezor's Ethereum app builds the transaction hash for EIP-1559 transactions. It moves the existing hashing steps into two helper functions and removes a duplicated list of transaction fields. There is no change to what data is signed or how it is signed, and no security bug is introduced or fixed.

AI review queuedrefactor(core/rust): update obj_type! for slots-based mp_obj_type_tby Martin Milata · aba19a5a · Aug 3, 2026 · 15 filesMessage 85 · StrongInformational 19Details
Commit message · Martin Milata

refactor(core/rust): update obj_type! for slots-based mp_obj_type_t

Relevant micropython commits:
3ac8b5851e5f4dade465d52b91ed2ccc17851263 py/obj: Add slot-index mp_obj_type_t representation.
cb0ffdd2bf25dcac3c230bdc1168d492aabaf573 py/obj: Remove basic mp_obj_type_t sparse representation.

[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 · Informational 19/100

This is a routine internal refactoring in the Trezor firmware's Rust code. It updates how Rust code builds MicroPython object type definitions to match a newer version of MicroPython that stores type information in a 'slots' array rather than a flat structure. There is no user-facing feature change and no indication of a security fix.

AI review queuedrefactor(core): inline `data_length` into `_get_digest_length()`by Roman Zeyde · df4447c9 · Aug 3, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

refactor(core): inline `data_length` into `_get_digest_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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a tiny code cleanup in the Ethereum transaction signing code. It moves where a variable is defined without changing what the code actually does. There is no security issue visible in the change.

AI review queuedrefactor(core): simplify ETH access list RLP encodingby Roman Zeyde · 2d23449f · Aug 3, 2026 · 1 fileMessage 93 · StrongInformational 12Details
Commit message · Roman Zeyde

refactor(core): simplify ETH access list RLP encoding

`rlp.length()` and `rlp.write()` support handling a list of `RLPItem`s.

https://eips.ethereum.org/EIPS/eip-2930#parameters

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

This commit is a small internal cleanup of how Ethereum transaction 'access lists' are formatted for RLP encoding in the Trezor firmware. It replaces a hand-rolled length calculation and manual header writing with higher-level helper functions that do the same job. There is no user-visible behavior change and no indication of a security fix.

AI review queuedchore(core): sign translationsby Martin Milata · 38b528f2 · Aug 3, 2026 · 1 fileMessage 62 · AdequateInformational 18Details
Commit message · Martin Milata

chore(core): sign translations

[no changelog]

(cherry picked from commit 4c4870262b85c04ba235602ba49307015118c3f5)

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

This commit adds a new cryptographic signature entry to a JSON file that records approved translation bundles for the Trezor hardware wallet. It does not change any executable code, fix a bug, or alter security logic. The signature appears to be a routine administrative update authorizing a new set of translated strings for firmware version 2.12.4.0.

AI review queuedfix(nordic): select correct hash algorithm for fw validationby tychovrahe · 66205f1b · Jul 31, 2026 · 4 filesMessage 62 · AdequateLow 41Details
Commit message · tychovrahe

fix(nordic): select correct hash algorithm for fw validation

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

This commit fixes the firmware build scripts for Trezor's Nordic Bluetooth chip variant so the correct cryptographic hash algorithm (SHA-256) is used when validating firmware images. Previously, the nRF54L-based boards could end up using SHA-512 for the image hash, which would not match the hash algorithm expected by the rest of the Trezor firmware validation chain. That mismatch could prevent the device from accepting legitimate firmware updates or, in a worst-case scenario, create a security inconsistency in how firmware authenticity is checked. The fix moves a hash-algorithm override into a board-specific configuration file and explicitly enables SHA-256 in the bootloader configuration.

AI review queuedfeat(core/sys): expose syslog as a Rust moduleby matejcik · bddf05ee · Jul 31, 2026 · 11 filesMessage 72 · AdequateInformational 15Details
Commit message · matejcik

feat(core/sys): expose syslog as a Rust module

and rewrite trezor_lib to use it as a dependency

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 · Informational 15/100

This commit is a routine internal code reorganization. It moves the syslog (system logging) functionality from one Rust module into a new shared 'sys' crate and updates the callers to use the new location. There is no user-facing change, no bug fix, and no security-related behavior change visible in the diff.

AI review queuedchore(trezorlib): refactor device definition requests handlingby PrisionMike · 8a01a994 · Jul 29, 2026 · 6 filesMessage 62 · AdequateInformational 18Details
Commit message · PrisionMike

chore(trezorlib): refactor device definition requests handling

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

This is a routine internal code cleanup in the Python Trezor library. It moves the logic that answers the hardware wallet's mid-transaction definition requests from one module to another and changes the public API from accepting a callback function to accepting a definition source object. There is no indication this fixes or introduces a security vulnerability; it is a refactor to make the code easier to test and maintain.

AI review queuedchore(translations): sync Crowdin translationsby Michal Kazda · c6040ab4 · Jul 28, 2026 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · Michal Kazda

chore(translations): sync Crowdin 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 updates translated text strings in five language files and refreshes the translation signature metadata. There are no code, logic, or security-related changes.

AI review queuedchore: update fixturesby PrisionMike · 148d73ea · Jul 28, 2026 · 4 filesMessage 40 · ThinInformational 15Details
Commit message · PrisionMike

chore: update fixtures

[no changelog]

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ 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 is a routine maintenance update labeled 'chore: update fixtures'. It adds new expected test result hashes for Ethereum transaction display tests, updates a translation signature metadata file, and reverts a dependency version number in a lock file. There are no code changes that affect how the Trezor device operates or secures funds.

AI review queuedchore(translations): update Continue for csby Martin Milata · e1251b09 · Jul 28, 2026 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

chore(translations): update Continue for cs

[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 changes one Czech translation string for the word 'Continue' from 'Pokračujte' to 'Pokračovat', and updates the corresponding translation signature metadata. There is no security relevance.

AI review queuedchore(core/ethereum): reject invalid initial chunkby Roman Zeyde · b5e27a2d · Jul 28, 2026 · 2 filesMessage 62 · AdequateLow 47Details
Commit message · Roman Zeyde

chore(core/ethereum): reject invalid initial chunk

[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
defensive validationsigning or wallet pathsecond-pass: near security thresholdsecond-pass: security-sensitive path
AI analysis · Low 47/100

This commit fixes a validation bug in Trezor's Ethereum transaction signing. Previously, the device only checked whether the initial data chunk was too large when the transaction also contained non-zero data length. Now it always rejects an oversized initial chunk, even when the declared data length is zero. The change is defensive and closes a path where malformed input could slip past validation.

AI review queuedchore(core/stellar): make gen and fixturesby obrusvit · 94d39e3c · Jul 28, 2026 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core/stellar): make gen and fixtures

[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 is a routine maintenance update for the Stellar feature in Trezor firmware. It adds three new user-facing text strings (for device screen prompts), updates translation signatures, refreshes expected test screenshot hashes, and adjusts dependency version-locking rules for the Stellar SDK. There is no indication of a security fix or vulnerability in the changes themselves.

AI review queuedrefactor(core): do not preallocate known addressesby obrusvit · 2e67a22f · Jul 27, 2026 · 4 filesMessage 77 · AdequateInformational 12Details
Commit message · obrusvit

refactor(core): do not preallocate known addresses

- use `mako` template to generate sc_constants
- de-duplicate WETH_DEPLOYMENTS

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

This commit is a code cleanup in Trezor's Ethereum app. It replaces a pre-built lookup table of known smart-contract addresses with a generated template and a helper function that searches the same data on demand. The visible behavior—such as which contract names are shown on the device screen—does not appear to change. There is no indication this fixes or introduces a security vulnerability.

AI review queuedrefactor(core/bitcoin): Consolidate external input classification.by Andrew Kozlik · e70633ee · Jul 23, 2026 · 2 filesMessage 77 · AdequateInformational 12Details
Commit message · Andrew Kozlik

refactor(core/bitcoin): Consolidate external input classification.

(cherry picked from commit 2042aec0ba7316c268548b1297691e750ed2112c)

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

This commit is a code cleanup (refactor) in the Bitcoin signing code of the Trezor firmware. It introduces a helper that classifies external transaction inputs into three categories (presigned, has ownership proof, or unverified) and uses that helper in two places instead of duplicating the same checks. The behavior appears unchanged; there is no indication this fixes or introduces a security bug.

AI review queuedfix(core): solana transfer showing LUT addressby obrusvit · 537b34f8 · Jul 23, 2026 · 4 filesMessage 72 · AdequateModerate 63Details
Commit message · obrusvit

fix(core): solana transfer showing LUT address

(cherry picked from commit e306dd41b41fea3cec3e3a75cedd501e8ad77a86)

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

This update fixes a display bug in Trezor's Solana token transfer screens. When a transaction destination was stored in an off-device 'address lookup table' (ALT), the device used to show the lookup table's own address as the recipient, instead of admitting it could not resolve the real destination. The fix makes the device fall back to a more honest, reference-aware display so users are not misled into approving transfers to the wrong address. This is a user-interface/confusion issue rather than a remote code execution flaw.

AI review queuedchore(core): sign translationsby Martin Milata · 8b4afd25 · Jul 23, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Martin Milata

chore(core): sign translations

[no changelog]

(cherry picked from commit b09832e821eac9ba247351037a2c8e2b585cad7c)

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 digital signature entry to a JSON file that records approved translation bundles for the Trezor hardware wallet firmware. There is no code change, no bug fix, and no indication of a security issue. It appears to be routine release housekeeping.

AI review queuedfix(solana): check unique stake withdraw recipientby Jakub Janků · 31e05613 · Jul 23, 2026 · 2 filesMessage 85 · StrongModerate 62Details
Commit message · Jakub Janků

fix(solana): check unique stake withdraw recipient

Prior to this commit, trezor used special UI flow for solana
transactions that contained only stake withdraw instructions. The
problem was that only the total withdrawn amount was shown without the
per-recipient breakdown of the amount.

This change restricts the use of the special flow only to cases where
the recipient is the same across all withdraw instructions. This unifies
the behavior of the `try_confirm_token_transfer_transaction` and
`try_confirm_staking_transaction` functions. If the recipient differs
from the signer, a warning is shown.

NOTE: This change also fixes the issue that the special flow could be
aborted without user interaction --- this could happen when the
transaction contained one supported instruction (by the special flow)
with a recipient other than the wallet and one unsupported instruction.
First, the user would see the recipient warning (part of the special
flow), but then this flow would be aborted and the default per-
instruction confirmation flow would start.

(cherry picked from commit 6b84dcdd241410c90fce8dbd4d8f8a2454aceeaf)

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

This update fixes a display issue in Trezor's Solana staking withdrawal flow. Previously, when withdrawing staked SOL, the device could show only the total amount being withdrawn even if multiple different recipients were involved, and in some mixed transactions it could silently drop back to a normal flow after showing a warning. Now the device requires all withdrawals in a simplified transaction to go to the same recipient, and it explicitly asks the user to confirm that recipient if it is not their own wallet.