TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

926security candidates315second-pass queue2669AI analyses
328commits · 30 days
560commits · 60 days
1352commits · 180 days
2617commits · 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
488Strong · 80–100
1333Adequate · 60–79
868Thin · 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 Zeyde583183578272
PrisionMike945994273
Andrew Kozlik742572266
obrusvit21376213164
Jakub Janků22919182
Martin Pastyřík24823173
cepetr19882196059
Ioan Bizău23076230059
M1nd3r21173208071
Lukas Bielesch846784067
Martin Milata18146176063
Analysis record

Published AI watches

Last scanned 18 minutes ago

Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore: remove libtropic's pin to develop branch

This commit removes a single line from the project's Git submodule configuration. It stops pinning the libtropic submodule to the 'develop' branch, meaning the project will now use the submodule's default branch (likely 'main' or 'master')…

8290eeefby M1nd3r+0−11 file
No security note in commit
Low 37 AI analysisMessage 70 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core/embed): clear temporary buffer across Optiga/Tropic calls

This is a hardening change for the random number generator inside Trezor hardware wallets. It makes sure that temporary memory holding secret random values from the Optiga and Tropic security chips is wiped immediately after use, rather th…

Sensitive intermediate buffer not cleared promptlyPotential stale-buffer reuse across RNG source boundariesDefense-in-depth memory sanitization for secure-element entropy
01ebda93by Roman Zeyde+2−21 file
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(core/ethereum): EIP-7702 tuple nonce must be non-zero

This commit only changes test data and expected screen fingerprints for Trezor's Ethereum EIP-7702 signing tests. It replaces one test case that used a nonce of 0 with the same scenario using a nonce of 67, because the real-world protocol …

Test-only change with no production code modificationEIP-7702 tuple nonce constraint reflected in test dataExpected UI test hashes regenerated for renamed test vector
76cd2ed4by Roman Zeyde+28−282 files
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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

6dd19fdcby Roman Zeyde+0−188 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

build(core): propagate emulator feature from projects

This commit is a build-system cleanup for the Trezor firmware's Rust code. It changes how the 'emulator' feature flag is passed between different software components. The firmware project no longer supports the emulator feature (which make…

5642074cby matejcik+5−44 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

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

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

Build script silently ignored copy failures before this fixFix removes unconditional `|| true` error suppressionKnown-benign missing files are now explicitly skipped with a file existence check
d829eda8by Andrew Kozlik+4−11 file
No security note in commit
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 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: fix links outside book root

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 …

0d8d4b1bby Martin Milata+14−810 files
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
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidaterefactor(core): remove circular dependencies, new 'storage' featureby cepetr · 9951c962 · Aug 12, 2025 · 43 filesMessage 62 · AdequateInformational 17Details
Commit message · cepetr

refactor(core): remove circular dependencies, new 'storage' feature

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

This is a large internal code reorganization in Trezor's embedded firmware. It moves flash/storage headers and build flags around so different firmware images (bootloader, kernel, production test, etc.) declare more explicitly which features they need. There is no obvious security bug introduced, but the change touches low-level memory-layout and storage code, so any mistake could in principle affect how secrets are stored. The commit itself is labeled a refactor and includes no changelog.

Security candidaterefactor(core): simplify entropy module, relocate/rename to storage_saltby cepetr · 75028216 · Aug 12, 2025 · 12 filesMessage 67 · AdequateInformational 12Details
Commit message · cepetr

refactor(core): simplify entropy module, relocate/rename to storage_salt

[no changelog]

67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomness
AI analysis · Informational 12/100

This commit is a code cleanup: it renames the 'entropy' module to 'storage_salt' and moves it into the storage subsystem. The same device-unique salt logic (CPU ID plus one-time-programmable randomness block, or a master-key-derived salt on newer devices) is preserved, just called at a different point during storage setup rather than at boot. There is no indication this fixes a security bug or changes cryptographic behavior.

Security candidaterefactor(core): cleanup storage syscalls, prepare early initializationby cepetr · 8a8ecdfc · Aug 12, 2025 · 26 filesMessage 62 · AdequateInformational 11Details
Commit message · cepetr

refactor(core): cleanup storage syscalls, prepare early initialization

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

This commit is a code cleanup and refactoring change in Trezor firmware. It replaces the old storage_init() function, which required callers to fetch their own random entropy (salt), with a new storage_setup() helper that fetches entropy internally. It also removes the direct entropy_get() system call from the non-secure kernel interface. There is no direct evidence in the commit that this fixes an active security vulnerability; it appears to be architectural preparation for future initialization changes.

Security candidatechore(core): remove unused defineby cepetr · 2f74e03e · Aug 12, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · cepetr

chore(core): remove unused define

[no changelog]

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

This commit simply removes an unused compiler flag named USE_SVC_SHUTDOWN from the firmware build script. There is no functional code change, no bug fix, and no security-relevant behavior altered. It is a routine cleanup.

Lower-prioritychore: remove forgotten diff fileby obrusvit · f4fb5586 · Aug 12, 2025 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · obrusvit

chore: remove forgotten diff file

- file accidentally added in b7fb51a7b0ca2b5fd96354126e12bba15cbbf27e

[no changelog]

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit simply deletes a leftover translation diff file that had been accidentally added to the repository earlier. It contains only string/label changes for user interface text and does not modify any executable code, cryptographic logic, or security behavior. There is no security issue here.

Lower-priorityfeat(core/prodtest): add boardloader update commandby tychovrahe · c20d9fb4 · Aug 12, 2025 · 6 filesMessage 62 · AdequateLow 33Details
Commit message · tychovrahe

feat(core/prodtest): add boardloader update command

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

This commit adds a factory-testing command that can rewrite the boardloader (the very first startup code on the device). It is intentionally restricted to development/non-production builds and excluded from the T2T1 model. The change also makes the shared binary buffer 4-byte aligned and adds a new memory-protection mode so the boardloader flash region can be written during this test command.

Lower-prioritychore(core): remove reflash toolby tychovrahe · e5bf739a · Aug 12, 2025 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · tychovrahe

chore(core): remove reflash tool

[no changelog]

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

This commit simply deletes an internal developer/reflashing utility called 'reflash' from the Trezor firmware source tree. It removes the build rules, linker script, and source code that allowed writing the boardloader and bootloader from an SD card. There is no patch to any runtime security boundary, no disclosed vulnerability, and no evidence this change fixes an exploitable bug.

Security candidatefeat(core/tools): make nrf update script more universal and allow updating boardloader with itby tychovrahe · 24e318de · Aug 12, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

feat(core/tools): make nrf update script more universal and allow updating boardloader with it

[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 routine developer tooling refactor. It renames and generalizes an internal Python helper script used to upload firmware to Trezor hardware over a USB serial port, so it can handle both nRF chip updates and boardloader updates. There is no change to device firmware, no user-facing feature, and no security fix or vulnerability indicated in the diff or commit message.

Security candidatechore(core/prodtest): improve nrf-update and bootloader-update description in readmeby tychovrahe · d5d38b21 · Aug 12, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

chore(core/prodtest): improve nrf-update and bootloader-update description in readme

[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 trustdocumentation-only discount
AI analysis · Informational 15/100

This commit only updates a README documentation file for an internal production-testing tool. It adds a sentence telling users which helper scripts to run when updating bootloader and nRF firmware binaries. No code, build scripts, firmware logic, or security behavior was changed.

Security candidaterefactor(core/prodtest): unify binary update functionby tychovrahe · 2454d37d · Aug 12, 2025 · 4 filesMessage 62 · AdequateInformational 11Details
Commit message · tychovrahe

refactor(core/prodtest): unify binary update function

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

This commit is a code cleanup that merges two nearly identical firmware-update helpers into one shared function. There is no indication it fixes or introduces a security bug; it is a routine refactoring in an internal production-testing tool.

AI review queuedchore(core): regen foreign charsby obrusvit · b7fb51a7 · Aug 12, 2025 · 11 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): regen foreign chars

[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 translation and font maintenance update. It regenerates Spanish and Portuguese font glyph data for the 'º' character, updates translation string files, refreshes the translation signature, and updates UI test fixture hashes. There is no code that handles secrets, cryptography, network data, or user authorization, and nothing in the commit suggests a security fix or vulnerability.

Lower-prioritychore(core): remove all fonts databy obrusvit · 23b2fc6e · Aug 12, 2025 · 14 filesMessage 80 · StrongInformational 15Details
Commit message · obrusvit

chore(core): remove all fonts data

- they now live solely in a separate repo: `trezor-firmware-fonts`
- README is created with this information
[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 15/100

This commit simply removes font files (TTF/OTF) and their license text from the repository, moving them to a separate fonts-only repository. It does not change any device firmware code, cryptographic logic, or user-facing behavior. There is no security issue here.

Lower-priorityrefactor(core): simplify THP write-related codeby Roman Zeyde · e1b56022 · Aug 12, 2025 · 7 filesMessage 80 · StrongInformational 12Details
Commit message · Roman Zeyde

refactor(core): simplify THP write-related code

- move fragmentation code into `PacketHeader.fragment_payload()`
- use `ThpContext.write_payload()` to send responses to the host
- precompute `INIT_HEADER_LENGTH` and `CONT_HEADER_LENGTH`
- remove most of `trezor.write.thp.writer` code

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

This commit is a code cleanup (refactor) inside the Trezor firmware's THP (Trezor Host Protocol) transport layer. It moves packet-fragmentation logic into a new helper method, removes an old writer module, and makes all sending paths use a single context method. There is no indication in the commit or supplied references that this fixes a security bug; it appears to be a maintainability improvement only.

Lower-prioritychore(core): export `memzero()` via `trezor.utils`by Roman Zeyde · 697c3a54 · Aug 12, 2025 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): export `memzero()` via `trezor.utils`

[no changelog]

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

This commit simply exposes an existing secure memory-clearing function to more parts of the Trezor firmware. It does not fix a bug or change behavior users can observe. It is a routine code cleanup (a 'chore') with no direct security impact on its own.

Lower-priorityfix(core): don't reuse `Shutdown` exception objectby Roman Zeyde · 33259c9b · Aug 12, 2025 · 1 fileMessage 89 · StrongInformational 19Details
Commit message · Roman Zeyde

fix(core): don't reuse `Shutdown` exception object

Otherwise, its traceback object is growing without being cleared.

[no changelog]

89/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode
AI analysis · Informational 19/100

This commit fixes a minor memory-management issue in the Trezor hardware wallet's user-interface code. Previously, the same `Shutdown` exception object was reused every time a screen layout shut down. Each reuse attached a new traceback to that same object, causing the stored traceback chain to grow indefinitely. The fix creates a fresh exception object each time, so old tracebacks can be garbage-collected. This is a cleanup/robustness fix rather than a clear, exploitable security vulnerability.

Security candidatefix(core): don't reuse `FORBIDDEN_KEY_PATH` exception objectby Roman Zeyde · f0015e5e · Aug 12, 2025 · 3 filesMessage 85 · StrongLow 42Details
Commit message · Roman Zeyde

fix(core): don't reuse `FORBIDDEN_KEY_PATH` exception object

Following https://github.com/trezor/trezor-firmware/issues/5472#issuecomment-3174382038.

[no changelog]

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
authentication path
AI analysis · Low 42/100

This commit fixes a subtle bug where the same error object was reused every time a forbidden key path was accessed. In Python/MicroPython, reusing a single exception instance can cause problems if something later modifies or inspects the raised error, because the same object carries state from one error site to another. The fix creates a fresh exception object each time, which is safer and more correct, but the commit message and diff do not clearly describe an active security vulnerability.

AI review queuedchore(core): remove logging from `alternating_bit_protocol`by Roman Zeyde · 4b9deb7b · Aug 12, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): remove logging from `alternating_bit_protocol`

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

This commit simply removes debug-only logging statements from a low-level Trezor firmware communication helper. There is no change to actual device behavior, no security fix, and no vulnerability introduced.

Lower-prioritychore(core): reduce default value in `MockHID` c-torby Roman Zeyde · f1c08bcf · Aug 12, 2025 · 6 filesMessage 77 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): reduce default value in `MockHID` c-tor

It would allow to use it as `CHANNEL_IFACE` (in a following commit).

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

This is a tiny internal test-only change. It gives a default value to a fake USB-like object used only in automated tests, so callers no longer need to pass a placeholder number. It does not touch any real device code, user-facing behavior, or security logic.

Lower-priorityrefactor(core): introduce `ThpContext`by Roman Zeyde · 18db6c94 · Aug 12, 2025 · 10 filesMessage 82 · StrongInformational 11Details
Commit message · Roman Zeyde

refactor(core): introduce `ThpContext`

This PR moves `thp_main` code to a "context"-like class, similar to
`CodecContext` for Protocol v1.

It encapsulates payload reassembly, as well as handling and responding
to low-level single packet THP messages.

Also, channel cache is now using interface number for `CHANNEL_IFACE`,
in order to simplify channel interface serialization.

[no changelog]

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 11/100

This is a code cleanup (refactor) that reorganizes how the Trezor hardware wallet handles its newer THP (Trezor Host Protocol) communication. It moves logic from a loose module into a class called ThpContext, similar to how the older protocol is already structured. There is no indication in the commit that this fixes a security bug; it is described as an internal restructuring with no user-facing changelog entry.

Lower-prioritychore(core): remove unused `interface_manager`by Roman Zeyde · 71e589bc · Aug 12, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Roman Zeyde

chore(core): remove unused `interface_manager`

[no changelog]

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

This commit simply deletes an unused helper module that translated between USB/Bluetooth connection identifiers and internal wire interface objects. There is no security-relevant change; it is routine code cleanup.

Security candidatechore(core): fix a small typo in `thp_common.py`by Roman Zeyde · 8b06fdac · Aug 12, 2025 · 10 filesMessage 72 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): fix a small typo in `thp_common.py`

Also, use `log._min_level` to suppress debug logging.

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

This commit is a minor cleanup in Trezor's test code. It fixes a spelling mistake in a helper function name and changes how debug logging is silenced during automated tests. It does not affect the actual device firmware or any user-facing security behavior.

Security candidatefix(build): no ui_debug_overlay only in prodby obrusvit · 384e0157 · Aug 11, 2025 · 1 fileMessage 57 · ThinLow 26Details
Commit message · obrusvit

fix(build): no ui_debug_overlay only in prod

[no changelog]

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

This commit adjusts when a firmware feature called 'ui_debug_overlay' is enabled during the build process. Previously, it was enabled for all optimized builds (PYOPT), which likely includes production releases. Now it is only enabled alongside other debug features when debug mode (PYOPT='0') is active. The change prevents a debug UI overlay from being compiled into production firmware.

Lower-priorityrefactor(core): move message reassembly into a separate classby Roman Zeyde · 20a519e4 · Aug 11, 2025 · 1 fileMessage 77 · AdequateInformational 12Details
Commit message · Roman Zeyde

refactor(core): move message reassembly into a separate class

Also, simplify the reassembly logic a bit.

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

This commit is a code cleanup: it moves the logic that reassembles incoming message packets into a new helper class called Reassembler. The change simplifies the Channel class and removes some duplicated code, but it does not appear to fix or introduce a security vulnerability. There is no changelog entry and no security disclosure attached.

Lower-prioritychore(core): remove THP fallback supportby Roman Zeyde · 09fc377c · Aug 11, 2025 · 5 filesMessage 72 · AdequateInformational 12Details
Commit message · Roman Zeyde

chore(core): remove THP fallback support

It will be reimplemented after event loop restart refactoring.

[no changelog]

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 12/100

This commit removes a temporary fallback mechanism from the Trezor hardware wallet's core firmware. The fallback feature was used during encrypted communication when normal memory buffers were busy. The commit message says it will be reimplemented later after internal refactoring. There is no indication in the commit itself that this fixes a security vulnerability; it appears to be a routine cleanup of unfinished code.

Lower-prioritytest(core): allow wiping via DebugLinkby Roman Zeyde · 601ef837 · Aug 11, 2025 · 3 filesMessage 82 · StrongLow 27Details
Commit message · Roman Zeyde

test(core): allow wiping via DebugLink

It allows THP-based debug builds to be wiped without unlocking.

[no changelog]

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Low 27/100

This commit adds a debug-only testing feature that lets automated tests wipe a Trezor device through the DebugLink interface without first unlocking it. It is intended to make testing easier for newer Trezor devices that use the THP protocol. The change only affects debug builds and is not present in production firmware, so it does not directly endanger real users. However, it does add a path where a debug build can erase the device without authentication, which is a security-relevant design choice for test/debug environments.