TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

916security candidates311second-pass queue1618AI analyses
336commits · 30 days
588commits · 60 days
1363commits · 180 days
2648commits · 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
473Strong · 80–100
1321Adequate · 60–79
862Thin · 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.
PrisionMike945990273
Andrew Kozlik712444265
Roman Zeyde572177305171
tychovrahe292104155161
Jakub Janků22919182
Martin Pastyřík23814173
cepetr19682120059
Ioan Bizău23076151059
obrusvit21376124064
M1nd3r20671125071
Lukas Bielesch846771067
Martin Milata17446122063
Analysis record

Published AI watches

Last scanned 36 minutes ago

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

ci(core): fix nightly ARM emulator filename

This commit fixes a filename-renaming step in the project's automated nightly build pipeline. It ensures ARM64 emulator files get the correct name expected by another testing tool. There is no change to the actual Trezor firmware code, dev…

ab95f08fby Martin Milata+3−01 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(vendor): avoid micropython submodule noise in git status

This is a routine housekeeping change to reduce clutter in Git's status output for a third-party component (the MicroPython submodule). There is no indication it changes any code that runs on the Trezor device or affects security.

06cab32bby Martin Milata+1−11 file
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-priorityfix(core): build emulator without pyopt enabledby cepetr · c190a986 · Jun 1, 2026 · 2 filesMessage 57 · ThinInformational 12Details
Commit message · cepetr

fix(core): build emulator without pyopt enabled

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

This commit changes how the Trezor emulator (a software version of the hardware wallet used for testing) is built. It disables a MicroPython bytecode optimization called 'pyopt' for emulator builds and tweaks how the build tool handles the --pyopt flag. The change only affects the emulator/test build, not the real hardware firmware, and there is no direct evidence in the commit that this fixes a security vulnerability.

Security candidaterefactor(core): raise `NotInitialized` from a common functionby Roman Zeyde · b6ec0d26 · Jun 1, 2026 · 15 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

refactor(core): raise `NotInitialized` from a common 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
seed or entropy pathauthentication path
AI analysis · Informational 15/100

This commit is a simple code cleanup: it replaces many copies of the same 'if device not initialized, raise an error' check with a single shared helper function. There is no change to when or how the error is raised, so it does not fix or introduce any security vulnerability.

Security candidatefix(core): raise `NotInitialized` on BTC-only seed derivationby Roman Zeyde · 109bfe31 · Jun 1, 2026 · 4 filesMessage 87 · StrongLow 34Details
Commit message · Roman Zeyde

fix(core): raise `NotInitialized` on BTC-only seed derivation

Also, add device test for `NotInitialized` exception.

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
seed or entropy path
AI analysis · Low 34/100

This update fixes a bug in Bitcoin-only Trezor firmware where the device would try to derive a cryptographic seed even when the device had not been set up yet. Now it correctly returns a 'NotInitialized' error instead. A test was added to confirm the behavior.

Security candidatechore(core): fail earlier if the device is not initializedby Roman Zeyde · 560a071c · Jun 1, 2026 · 1 fileMessage 62 · AdequateLow 35Details
Commit message · Roman Zeyde

chore(core): fail earlier if the device is not initialized

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

This commit moves a safety check earlier in the process of setting up a cryptographic seed on a Trezor device. The check ensures the device is properly initialized before it proceeds. By running the check earlier, it prevents a situation where a seed might already be cached or a passphrase accepted before the initialization check happens. This is a defensive hardening change, not a confirmed exploitable vulnerability, because the commit message does not describe a security issue and no exploit path is shown in the diff.

Lower-prioritychore: negative indices and more bytes typesby Ioan Bizău · 501a0f8a · Jun 1, 2026 · 5 filesMessage 57 · ThinInformational 16Details
Commit message · Ioan Bizău

chore: negative indices and more bytes types

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

This commit changes the numeric codes used to identify Ethereum data types in Trezor's device-to-computer protocol. It also allows path numbers in one message type to be negative (signed integers) instead of only positive (unsigned integers). The changes are described as a routine cleanup ('chore') with no changelog entry. There is no direct evidence in the commit that this fixes a security vulnerability.

Lower-priorityci(core): hw: disable monero testsby Martin Milata · b74df5f7 · May 30, 2026 · 1 fileMessage 90 · StrongInformational 15Details
Commit message · Martin Milata

ci(core): hw: disable monero tests

See also: https://github.com/trezor/trezor-firmware/issues/3128

[no changelog]

90/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✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit simply turns off a hardware test job in GitHub Actions for Monero cryptocurrency features by adding an always-false condition. It is a CI/testing change, not a code change to the firmware itself, and contains no security fix or vulnerability.

Lower-priorityci: hw: bump actions/checkout, actions/upload-artifactby Martin Milata · a3bc309b · May 30, 2026 · 1 fileMessage 62 · AdequateInformational 18Details
Commit message · Martin Milata

ci: hw: bump actions/checkout, actions/upload-artifact

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

This commit updates the versions of two GitHub-provided helper actions used in Trezor's automated hardware testing workflows. It also disables the 'persist-credentials' option on checkout steps, which is a security-hardening setting that prevents later workflow steps from accidentally keeping long-lived repository access tokens. The change is routine CI maintenance with a small defensive-security benefit, not a fix for an active vulnerability in the Trezor firmware itself.

Lower-priorityci(core): hw: add T3B1 and T3W1 runnersby Martin Milata · 75e94b22 · May 30, 2026 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

ci(core): hw: add T3B1 and T3W1 runners

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 only updates Trezor's internal continuous-integration (CI) hardware-test configuration. It adds two new physical device models (T3B1 and T3W1) to the automated test runner list and tells the test harness how to label them during firmware flashing. There is no change to the firmware code that runs on users' devices, no change to cryptographic handling, and no security fix or vulnerability present in the diff.

Lower-priorityci(core): hw: power cycle all ports on PPPS hubby Martin Milata · 6f231a02 · May 30, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

ci(core): hw: power cycle all ports on PPPS hub

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

This commit changes a CI (Continuous Integration) workflow file for hardware testing. It modifies the configuration so that a USB hub power-cycles all ports instead of just port 1 during automated test runs. There is no change to the actual Trezor firmware, wallet application, or any code that end users run. This is purely a test infrastructure tweak.

Lower-priorityci(core): hw: add T3T1 runnersby Martin Milata · e203d0f2 · May 30, 2026 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

ci(core): hw: add T3T1 runners

[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 only changes the project's internal continuous integration (CI) setup to add hardware testing runners for a new Trezor device model (T3T1 / Safe 5). It does not modify the firmware code that runs on user devices, nor does it change any security-critical logic. There is no indication this commit fixes or introduces a security vulnerability.

Lower-prioritydocs(core): add md ext to READMEby obrusvit · 9ea5e01f · May 30, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · obrusvit

docs(core): add md ext to README

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

This commit simply renames a documentation file from README to README.md so it displays nicely in GitHub. The actual text of the document is unchanged. There is no code change and no security relevance.

Security candidatechore(core/delizia): drop header if `show_warning()` title is emptyby Roman Zeyde · a6090dce · May 29, 2026 · 2 filesMessage 62 · AdequateInformational 17Details
Commit message · Roman Zeyde

chore(core/delizia): drop header if `show_warning()` title is empty

Similar to af8bfeb308.

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

This is a small user-interface cleanup change for the Trezor hardware wallet's Delizia layout. It makes warning screens hide their top title bar when the title is empty, and explicitly rejects 'danger' warnings that have no title. There is no direct evidence this fixes a security vulnerability; it appears to be a UI consistency improvement.

Security candidaterefactor(core/delizia): rename `Frame::new()` to `Frame::with_header()`by Roman Zeyde · ba3b6490 · May 29, 2026 · 21 filesMessage 77 · AdequateInformational 15Details
Commit message · Roman Zeyde

refactor(core/delizia): rename `Frame::new()` to `Frame::with_header()`

Will be used in the 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
Why it was queued
boot or update pathauthentication path
AI analysis · Informational 15/100

This commit is a simple code cleanup: it renames a Rust function from Frame::new() to Frame::with_header() and updates every place that called it. There is no change to what the code does, no bug fix, and no security-relevant behavior.

Security candidaterefactor(core/delizia): use `u8` for header marginby Roman Zeyde · 3c8efa1f · May 29, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

refactor(core/delizia): use `u8` for header margin

[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 is a small internal code cleanup in the Trezor firmware's user-interface code. It changes a variable used for screen layout margin from a larger integer type (`usize`) to a smaller one (`u8`). The actual behavior is unchanged because the value is immediately converted to the same screen-coordinate type (`i16`) used before. There is no security-relevant change visible in the commit.

Security candidatefeat(core): use Cargo as the build system for C codeby cepetr · 8e2ff473 · May 29, 2026 · 176 filesMessage 62 · AdequateInformational 17Details
Commit message · cepetr

feat(core): use Cargo as the build system for C code

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathseed or entropy pathboot or update pathparser or protocol path
AI analysis · Informational 17/100

This is a massive Trezor firmware commit that replaces the old SCons-based build system with Cargo (Rust's build tool) for compiling the embedded C code. It adds many new Cargo.toml files, build.rs scripts, and a custom xbuild helper crate, but does not change the actual security logic of the wallet. The main risk is that a build-system change of this size could accidentally alter compiler flags, included source files, or linker settings, which might affect the produced binary. There is no direct vulnerability shown in the diff, and the commit message explicitly says it is a feature with no changelog entry.

Security candidatefix(core): remove unused ipc syscallsby cepetr · eae18bd2 · May 29, 2026 · 3 filesMessage 57 · ThinInformational 12Details
Commit message · cepetr

fix(core): remove unused ipc syscalls

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

This commit removes the 'ipc' feature flag from three build scripts by default, and only enables it when external app loading is supported on the T3W1 model. IPC stands for inter-process communication, and these particular system calls were reportedly unused. There is no direct evidence in the commit that this fixes an active security vulnerability; it appears to be a cleanup or hardening change to reduce unused attack surface.

Security candidaterefactor(core): update t2t1 firmware layout for rlib linkingby cepetr · 4844171d · May 29, 2026 · 1 fileMessage 62 · AdequateInformational 17Details
Commit message · cepetr

refactor(core): update t2t1 firmware layout for rlib linking

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

This commit rearranges how different pieces of the Trezor firmware are placed in the device's flash memory. It moves frozen Python data and the main code sections into one flash region, while moving the bootloader into a separate flash region. The stated purpose is to support linking Rust static libraries (rlib). There is no direct evidence in the commit that this fixes a security vulnerability.

Lower-priorityci: update style_check workflowby cepetr · 552e6090 · May 29, 2026 · 1 fileMessage 47 · ThinInformational 15Details
Commit message · cepetr

ci: update style_check workflow

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

This commit only updates a GitHub Actions CI workflow file. It adds one extra step to initialize a code submodule (QR-Code-generator) before running automated style checks. There is no change to the actual Trezor firmware code, cryptography, or anything users interact with. It is a routine build/maintenance fix with no security relevance.

Lower-priorityrefactor(core): introduce USE_BACKUP_DOMAIN_RETENTIONby cepetr · b45eaa57 · May 29, 2026 · 4 filesMessage 52 · ThinInformational 11Details
Commit message · cepetr

refactor(core): introduce USE_BACKUP_DOMAIN_RETENTION

[no changelog]

52/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 11/100

This commit renames a hardware configuration flag from USE_BACKUP_RAM to USE_BACKUP_DOMAIN_RETENTION and enables it for three Trezor T3W1 hardware revisions. It appears to be a code cleanup/refactor to make startup power-retention behavior match the actual hardware capability on these boards. There is no direct evidence in the commit that this fixes a security vulnerability.

Lower-priorityrefactor(core): make boot_ucb/header implementation hw specificby cepetr · d13a5755 · May 29, 2026 · 12 filesMessage 62 · AdequateInformational 15Details
Commit message · cepetr

refactor(core): make boot_ucb/header implementation hw specific

[no changelog]

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

This commit is a pure code reorganization: it moves the STM32-specific bootloader header, bootloader image, and update-control block (UCB) code from a shared directory into a hardware-specific 'stm32' subdirectory, and adds a minimal Unix emulator stub for UCB. The actual logic in the moved files is byte-for-byte identical to the original. No security behavior is changed, no bugs are fixed, and no vulnerabilities are introduced based on the supplied diff.

Lower-priorityfix(core): get rid of old-style-declaration warningsby cepetr · f1ab19bb · May 29, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · cepetr

fix(core): get rid of old-style-declaration warnings

[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 only reorders two C keywords in three places, changing 'const static' to 'static const'. This is a coding-style cleanup to silence compiler warnings and has no effect on what the code actually does or on security.

Lower-priorityfix(core): initialize haptic driver in the emulatorby cepetr · 38040895 · May 29, 2026 · 1 fileMessage 62 · AdequateInformational 18Details
Commit message · cepetr

fix(core): initialize haptic driver in the emulator

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

This commit fixes a missing initialization step in the Trezor hardware wallet emulator (the software version used for testing/development, not the real device). The emulator now initializes the haptic driver when haptic feedback is enabled. This is a straightforward bug fix for a feature that was not being set up correctly in the emulator build. There is no direct security relevance visible in the commit.

Lower-priorityci: simplify release-emu.ymlby Martin Milata · d9ee4759 · May 29, 2026 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

ci: simplify release-emu.yml

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

This commit is a routine cleanup of the GitHub Actions workflow that builds Trezor emulator releases. It removes unused matrix dimensions (like ASan variants), drops environment variables that were no longer needed, changes a default so the bootloader build step is skipped unless explicitly requested, and passes the device model into the build command. There is no change to the firmware code that runs on user devices, no fix for a vulnerability, and no security-relevant behavior change.

Lower-priorityfix(core): remove build path from firmware binaryby cepetr · 2a8e6bbf · May 29, 2026 · 2 filesMessage 57 · ThinInformational 18Details
Commit message · cepetr

fix(core): remove build path from firmware binary

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

This commit removes the full build directory path from the firmware binary by switching from __FILE__ to __FILE_NAME__ in two error-handling locations. The change reduces information leakage but does not fix a memory corruption or logic bug. It is a hardening/information-disclosure reduction patch, not a fix for an actively exploitable vulnerability.

Lower-prioritybuild: build-docker.sh: adjust paths for xtaskby Martin Milata · 7e4fecf0 · May 29, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Martin Milata

build: build-docker.sh: adjust paths for xtask

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 updates a build script to look for compiled firmware files in a new directory path (`build-xtask/artifacts/...`) instead of the old path (`build/...`). It is a routine build-system path adjustment with no apparent security relevance.