TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

921security candidates311second-pass queue2660AI analyses
322commits · 30 days
549commits · 60 days
1358commits · 180 days
2638commits · 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.

66/100 average clarity
478Strong · 80–100
1321Adequate · 60–79
863Thin · 40–59
5Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
tychovrahe292104292461
Roman Zeyde577181575272
PrisionMike945994273
Andrew Kozlik712470265
obrusvit21376213164
Jakub Janků22919182
Martin Pastyřík23823173
cepetr19682196059
Ioan Bizău23076230059
M1nd3r20772207071
Lukas Bielesch846784067
Martin Milata17446174063
Analysis record

Published AI watches

Last scanned 48 minutes ago

Low 27 AI analysisMessage 93 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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 c…

Refactor of cryptographic hashing path for Ethereum transaction signingRemoval of implicit assumption that RLP encodes small integers as single bytesChange affects EIP-1559 and EIP-7702 transaction type markers
2362bc6fby Roman Zeyde+6−32 files
No security note in commit
Informational 15 AI analysisMessage 98 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core): test RLP self-encoding bytestrings

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 p…

41538733by Roman Zeyde+16−01 file
No security note in commit
Informational 18 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove sha1 from regular FW

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…

Removal of a deprecated cryptographic primitive (SHA-1) from the firmware API surfaceReduction of attack surface and prevention of future misuse of a collision-vulnerable hashNo direct vulnerability patch or memory-safety bug is present in the diff
16d15774by M1nd3r+0−2006 files
No security note in commit
Low 27 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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 ref…

Cryptographic key handling changed: public key is now supplied rather than derivedPotential reduction of key-mismatch risk if caller provides correct public keyNew null-pointer check added for static_public_key
1b3128a4by Ondřej Vejpustek+20−92 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): change order of parameters

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.

33a119eeby Ondřej Vejpustek+15−151 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): prefix enums

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 …

f1c74046by Ondřej Vejpustek+26−222 files
No security note in commit
Low 37 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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 i…

NULL pointer passed to memory-zeroing helper in cryptographic codeUndefined behavior in C standard library contractDefensive hardening in Noise protocol implementation
0394e934by Ondřej Vejpustek+11−51 file
No security note in commit
Informational 18 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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…

Removal of long-term public key storage from internal handshake stateCaller-supplied output buffer for remote static public key reduces internal secret retentionError-path memzero of returned key material on failure
3ead1aa6by Ondřej Vejpustek+79−423 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ProjectProfile to ProjectConfig

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 hand…

581b37bcby cepetr+18−182 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce ResolvedBuildArgs

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 u…

c24d1be8by cepetr+99−295 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): make build args tristate

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 l…

271e249aby cepetr+57−561 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce build options

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. Ther…

75085e2aby cepetr+275−2007 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce build presets

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 i…

eefe8f7fby cepetr+397−419 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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 simplifyin…

57b28b89by cepetr+86−1351 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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

e554f618by cepetr+8−01 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

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…

aaa2780bby cepetr+5−52 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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 provid…

62354461by cepetr+2−21 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): simplify dependencies

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 beha…

6268349fby cepetr+9−193 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: add xtask documentation

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 …

4879dababy cepetr+296−03 files
No security note in commit
Informational 17 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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 bui…

Build-option mapping now lives in project.toml files, increasing the attack surface for supply-chain/build-configuration tamperingMakefile change automatically enables debug-link for PYOPT=0 debug buildsValidation added to reject storage_insecure_testing_mode in production builds
d44de007by cepetr+681−40817 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.

Lower-priorityfeat(core/prodtest): prevent production prodtest from erasing of backup RAMby tychovrahe · 73684a28 · Jan 13, 2026 · 6 filesMessage 62 · AdequateLow 32Details
Commit message · tychovrahe

feat(core/prodtest): prevent production prodtest from erasing of backup RAM

[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 · Low 32/100

This commit makes two changes to Trezor's firmware. First, it removes the ability of the production-test tool ('prodtest') to erase a special memory area called 'backup RAM' when the device is built for real production use. Second, it replaces a secure-monitor call that only returned battery temperature min/max values with one that returns a broader 'telemetry data' structure. The commit title frames the change as preventing production prodtest from erasing backup RAM, which suggests a hardening measure rather than a reported vulnerability fix.

Lower-prioritychore(core): remove no-longer compatible secmon imagesby tychovrahe · b1e764a3 · Jan 13, 2026 · 2 filesMessage 62 · AdequateInformational 10Details
Commit message · tychovrahe

chore(core): remove no-longer compatible secmon images

[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 10/100

This commit simply deletes two old binary files used by the T3W1 hardware model's secure monitor. The commit message says they are 'no-longer compatible' and explicitly marks '[no changelog]', meaning it is treated as a routine cleanup rather than a security fix. There is no code change, patch, or explanation of any vulnerability.

Lower-priorityfeat(core): only allow kernel to access specific records in backup ramby tychovrahe · a21c0083 · Jan 13, 2026 · 3 filesMessage 62 · AdequateModerate 64Details
Commit message · tychovrahe

feat(core): only allow kernel to access specific records in backup ram

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

This commit tightens access control on a special memory area called 'backup RAM' in Trezor's secure core. Previously, the kernel could potentially read or write any record in backup RAM through verified system calls. Now it is restricted to only two specific records: one related to power-management recovery and one related to Bluetooth settings. This reduces the damage if malicious or buggy kernel code tries to access sensitive records it should not touch.

Security candidatefeat(core): introduce telemetryby tychovrahe · 5d5358da · Jan 13, 2026 · 13 filesMessage 47 · ThinInformational 23Details
Commit message · tychovrahe

feat(core): introduce telemetry

[no changelog]

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

This commit adds a new internal telemetry feature to the Trezor firmware that records the minimum and maximum battery temperature in a small, protected memory area (backup RAM). It only stores a float value for the coldest and hottest battery readings and does not send data anywhere. There is no obvious security bug in the code, but it is a new subsystem that touches low-level firmware components and could become relevant if future changes connect it to untrusted inputs or expose it externally.

Lower-prioritytests: stabilize reseedingby matejcik · 4fe67295 · Jan 12, 2026 · 4 filesMessage 85 · StrongInformational 15Details
Commit message · matejcik

tests: stabilize reseeding

So that the setup sequence of operations doesn't affect randomness
inside the test itself.

This unfortunately causes a massive UI diff, but hopefully that's one of
the last times this happens.

[no changelog]

85/100 · StrongMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
AI analysis · Informational 15/100

This commit only changes test code. It adjusts how randomness is reseeded during automated UI tests so that screen recordings stay consistent, and updates the expected screenshot fingerprints (hashes) accordingly. There is no change to the actual Trezor firmware or wallet security behavior.

Lower-prioritystyle(core): appease clang about _Static_assertby matejcik · 780357f3 · Jan 12, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · matejcik

style(core): appease clang about _Static_assert

[no changelog]

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This is a one-character style fix that adds an empty message string to a compile-time assertion. It has no effect on the device's behavior, security, or stored secrets. It simply keeps the code compatible with stricter compiler settings.

Security candidatefeat(tron): add TriggerSmartContract support.by PrisionMike · fa412687 · Jan 12, 2026 · 28 filesMessage 90 · StrongModerate 51Details
Commit message · PrisionMike

feat(tron): add TriggerSmartContract support.

- Blind signing TRON smart contracts.
- Only contract address shown to user.
- USDT,USDD transfer tested.
- Fee layout imperfect. To be fixed later.

[no changelog]

90/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
Why it was queued
signing boundarycryptography-sensitive pathsigning or wallet path
AI analysis · Moderate 51/100

This commit adds support for signing TRON smart-contract calls (like USDT/USDD transfers) on Trezor hardware wallets. Because the device cannot yet decode the actual token-transfer details, users are shown only the smart-contract address and raw data, meaning they are 'blind signing' the transaction. The commit message explicitly calls this out. There is also a fee-limit check to cap how much TRX can be burned, and a fix changing some timestamp/expiration fields from signed to unsigned integers.

Security candidatefeat: confirm cancel outputby Ioan Bizău · c1e9277b · Jan 12, 2026 · 12 filesMessage 47 · ThinInformational 15Details
Commit message · Ioan Bizău

feat: confirm cancel output

[no changelog]

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

This commit adds a new on-screen prompt that asks users to confirm they really want to cancel a transaction-signing flow. It is a user-experience and safety feature, not a security fix. There is no evidence of a vulnerability being patched.

Security candidatefeat(delizia): swipe to go back on confirm_valueby Ioan Bizău · 90e30e57 · Jan 12, 2026 · 7 filesMessage 57 · ThinInformational 19Details
Commit message · Ioan Bizău

feat(delizia): swipe to go back on confirm_value

[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 pathboot or update path
AI analysis · Informational 19/100

This commit adds a 'swipe down to go back' feature to the Delizia user interface on Trezor hardware wallets. When reviewing a cryptocurrency transaction, a user can now swipe down on the amount screen to return to the address screen and double-check it. It is a usability improvement, not a fix for a vulnerability.

Security candidaterefactor: introduce `StrPropertyType`by Ioan Bizău · 8129ce47 · Jan 12, 2026 · 14 filesMessage 70 · AdequateInformational 15Details
Commit message · Ioan Bizău

refactor: introduce `StrPropertyType`

* for properties that cannot have `bytes` values, which `PropertyType`
allows
* also replace `str(x)` calls with `x or ""` for dealing with the `None`
case

[no changelog]

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive pathsigning or wallet pathboot or update path
AI analysis · Informational 15/100

This commit is a straightforward internal code cleanup. It introduces a new type alias called StrPropertyType for UI properties that are always text strings (never raw bytes), and replaces some str(x) conversions with x or "" to handle possible None values more cleanly. There is no indication this fixes a security bug or changes user-visible behavior.

Security candidaterefactor: drop `ConfirmOutputWithAmount`by Ioan Bizău · d14eeca9 · Jan 12, 2026 · 14 filesMessage 47 · ThinInformational 19Details
Commit message · Ioan Bizău

refactor: drop `ConfirmOutputWithAmount`

[no changelog]

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

This commit removes a dedicated two-page 'confirm output with amount' screen and replaces it with two separate confirmation prompts for the address and the amount. It is a user-interface refactor, not a fix for a security vulnerability. The change does not introduce obvious security flaws, but it slightly alters how users review transaction details on newer Trezor layouts.

Security candidatefeat(eckhart): back button on confirm_valueby Ioan Bizău · aa857fa3 · Jan 12, 2026 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

feat(eckhart): back button on confirm_value

[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 pathboot or update path
AI analysis · Informational 15/100

This commit adds a new optional 'back button' to a Trezor screen type called confirm_value. It is a user-interface feature for the upcoming Eckhart hardware model and does not fix or introduce any security vulnerability. The change simply lets callers request a back arrow instead of a cancel cross, and wires that through the Rust UI layer for all supported device layouts.

Security candidatefeat: title and subtitle on property pagesby Ioan Bizău · 31026a0d · Jan 12, 2026 · 10 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

feat: title and subtitle on property pages

[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 pathboot or update path
AI analysis · Informational 15/100

This commit is a routine user-interface feature addition. It lets certain 'property' display screens show an optional subtitle and gives callers a way to override the page title. There is no security-relevant change in the diff.

Lower-priorityrefactor: extract `confirm_linear_flow`by Ioan Bizău · 62345f2d · Jan 12, 2026 · 3 filesMessage 47 · ThinInformational 15Details
Commit message · Ioan Bizău

refactor: extract `confirm_linear_flow`

[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 routine code cleanup: it pulls a repeated user-interface loop into a shared helper function called confirm_linear_flow. There is no change to security behavior, no bug fix, and no indication of a vulnerability.

Lower-prioritychore: update fixturesby Ioan Bizău · bfe516ba · Jan 12, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · Ioan Bizău

chore: update fixtures

[no changelog]

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only updates expected test result hashes (called 'fixtures') in a single JSON file used by the Trezor firmware UI test suite. There are no code changes, no firmware changes, and no user-facing behavior changes. It is a routine maintenance update to keep automated tests passing after unrelated visual or internal changes elsewhere in the project.

Security candidaterefactor: extract `ConfirmActionOptions`by Ioan Bizău · 3f0cbc03 · Jan 12, 2026 · 4 filesMessage 47 · ThinInformational 15Details
Commit message · Ioan Bizău

refactor: extract `ConfirmActionOptions`

[no changelog]

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

This commit is a straightforward code cleanup: it bundles several settings for confirmation screens into a single ConfirmActionOptions struct instead of passing them as separate function arguments. There is no change to user-facing behavior, no bug fix, and no security-related change.

Security candidaterefactor: use `ConfirmActionOptions` in `ConfirmValue`by Ioan Bizău · eb5ede77 · Jan 12, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău

refactor: use `ConfirmActionOptions` in `ConfirmValue`

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

This commit is a straightforward internal code cleanup in the Trezor firmware's user-interface layer. It replaces several individual settings inside a 'ConfirmValue' screen builder with a shared 'ConfirmActionOptions' object. There is no change to user-visible behavior or to security logic; it is purely a refactor to reduce duplicated code.

Security candidatefeat(core): Add error handling in driver init functions + update syscall stubs.by kopecdav · 2caaca62 · Jan 12, 2026 · 9 filesMessage 62 · AdequateLow 26Details
Commit message · kopecdav

feat(core): Add error handling in driver init functions + update syscall stubs.

[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 26/100

This commit changes how the Trezor firmware's vibration motor (haptic) driver reports and handles errors. Previously, some haptic functions returned simple true/false success values, and some callers ignored the result of initialization. Now those functions return a structured status code, callers capture the status (though mostly still ignore it), and one resume path actually halts on failure. A test-only haptic syscall was removed. The changes are defensive cleanups rather than a fix for a known exploitable bug, but they reduce the chance that a failing haptic device could leave the system in an inconsistent state.

Lower-priorityfix(core/prodtest): fix haptic test.by kopecdav · b8ee9641 · Jan 12, 2026 · 1 fileMessage 67 · AdequateInformational 12Details
Commit message · kopecdav

fix(core/prodtest): fix haptic test.

[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
AI analysis · Informational 12/100

This is a small fix to the Trezor hardware wallet's production-line testing tool for the vibration motor (haptic feedback). It renames a variable, updates the driver initialization and playback calls to use newer error-handling types, and switches from a fixed vibration pattern to a custom 100 Hz vibration lasting the user-specified duration. There is no indication this change fixes a security vulnerability or affects end-user device security.

Lower-priorityfeat(core): rework haptic driver.by kopecdav · ca5b4083 · Jan 12, 2026 · 19 filesMessage 80 · StrongInformational 17Details
Commit message · kopecdav

feat(core): rework haptic driver.

Major rework of the haptic driver to improve the haptic feedback of the T3W1 click
- Rename driver from `drv2625` to `drv262x`, since we use it to control compatible models drv2624 and drv2625
- Fix driver configuration to properly configure close loop and open loop operation. T3W1 driver was configured to work in close_loop mode.
- Add waveform playbacks on drv2624 + new button click haptic effect
- Update actuator configuration files with more control parameters.
- Add error handling and tidy up the driver API comments.
- Removed `haptic_test` function since it could be directly replaced with `haptic_play_custom`

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 17/100

This commit is a routine hardware-driver refactor for the vibration motor (haptic feedback) in Trezor devices. It renames the driver, adds support for a second chip model, fixes how closed-loop vs open-loop motor control is configured, and improves error handling. There is no direct evidence in the commit that this fixes an exploitable security vulnerability; it appears to be a product-quality and maintainability improvement.

AI review queuedfeat(tests): cancel output flow on amount screenby Ioan Bizău · cee23581 · Jan 9, 2026 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Ioan Bizău

feat(tests): cancel output flow on amount screen

[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 15/100

This commit only adds a new automated test for the Trezor hardware wallet. The test checks that a user can cancel a Bitcoin transaction signing flow from the amount confirmation screen on newer device models. It does not change any firmware, wallet logic, or security behavior. There is no security issue here.

Lower-prioritychore: update fixturesby Ioan Bizău · a5ec9b36 · Jan 9, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · Ioan Bizău

chore: update fixtures

[no changelog]

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds new expected screen-image fingerprints (called 'fixtures') for automated user-interface tests. It does not change any wallet code, transaction logic, or security behavior. There is no security issue here.

Lower-prioritychore(core): correct translation check annotation and docstringby Roman Zeyde · 554fa2c4 · Jan 9, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): correct translation check annotation and docstring

[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 is a tiny documentation-only change. A helper function's type hint was updated from 'bool or None' to just 'bool', and the docstring line saying it could return None when no translation blob exists was removed. No actual code behavior changed, and there is no security relevance.

Lower-priorityfix(python): avoid dropping WebUSB chunks in case of a timeoutby Roman Zeyde · 1ec290d5 · Jan 9, 2026 · 2 filesMessage 93 · StrongLow 45Details
Commit message · Roman Zeyde

fix(python): avoid dropping WebUSB chunks in case of a timeout

`libusb1` may return the received data even in case of a timeout
https://github.com/vpelletier/python-libusb1/blob/292143c8f4465fdcb2c35ed40cdd7e4dd8d031e1/usb1/__init__.py#L1567

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
AI analysis · Low 45/100

This commit fixes a bug in the Python Trezor library's WebUSB communication code. Previously, if a USB read operation timed out but had already received some data, that partial data was silently thrown away. Now the code checks whether any data was received before the timeout and uses it if it is a valid full chunk. This could prevent communication failures or dropped messages when talking to a Trezor device over USB, especially under timing pressure.

Security candidaterefactor(core/bootloader): unify bootloader event loop in rustby tychovrahe · fc2b18da · Jan 8, 2026 · 27 filesMessage 62 · AdequateLow 28Details
Commit message · tychovrahe

refactor(core/bootloader): unify bootloader event loop in rust

[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
update trustcryptography-sensitive pathboot or update path
AI analysis · Low 28/100

This commit is a large internal refactor of the Trezor bootloader's event loop, moving it from C into Rust and changing how screens handle USB/Bluetooth communication. The title and message explicitly call it a refactor with '[no changelog]', and there is no vendor statement that this fixes a security bug. The diff shows substantial code movement but no obvious new vulnerability. Because it is a wide-reaching rewrite of security-critical boot-time code, it carries ordinary implementation risk, but the available materials do not demonstrate a concrete security issue.