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.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
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
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
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.
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 …
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
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
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…
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…
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…
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…
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…
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…
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.…
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…
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…
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…
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 …
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
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…
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.
✓ 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.
✓ 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.
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-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): remove unused MPU modes from the kernelby cepetr · dd649ec3 · May 29, 2026 · 1 fileMessage 62 · AdequateLow 34Details
Commit message · cepetr
fix(core): remove unused MPU modes from the kernel
[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 34/100
This commit removes a memory-protection setting that was being compiled into the Trezor's core kernel even though it was not supposed to be used there. The setting controls access to a special flash area called BOOTUCB, which is related to boot configuration. By making sure this MPU mode is only available outside the kernel, the change prevents the kernel from accidentally or maliciously reconfiguring memory protections to expose or alter sensitive boot-configuration storage. The actual risk is limited because the mode was described as unused in the kernel, and the patch is a one-line guard.
Lower-prioritychore(core): adjust hardcoded paths to use xtask buildby cepetr · 5e048ddc · May 29, 2026 · 5 filesMessage 77 · AdequateInformational 15Details
Commit message · cepetr
chore(core): adjust hardcoded paths to use xtask build
[no changelog]
Co-authored-by: Martin Milata <martin@martinmilata.cz>
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 commit simply updates internal file paths in developer and testing scripts so they point to a new build output directory. It does not change any code that runs on the Trezor device or handle user data, secrets, or network traffic. There is no security issue here.
Lower-prioritychore(core): update fixtures for T3W1by Martin Milata · 5185f493 · May 29, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Martin Milata
chore(core): update fixtures for T3W1
[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 updates expected test result fingerprints (hashes) in a UI test fixtures file for the T3W1 device model. No actual product code, firmware logic, or user-facing behavior was changed. It is a routine test-maintenance change with no security relevance.
Lower-prioritybuild(core): make Makefile and CI use xtaskby Martin Milata · 3346d2c1 · May 29, 2026 · 6 filesMessage 72 · AdequateInformational 15Details
Commit message · Martin Milata
build(core): make Makefile and CI use xtask
Old Makefile can still be used, e.g.:
make -f Makefile.scons build_unix_frozen PYOPT=0
[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 is a build-system refactor: it switches the Trezor Core firmware build from direct scons/Make invocations to a new wrapper tool called xtask. It also renames output directories and artifact filenames. There is no change to the actual firmware code, cryptographic logic, or device behavior, so it does not introduce or fix a security vulnerability on its own.
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.
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.
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-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.
✓ 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-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.
✓ 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-prioritydocs(core): Document absence of SD salt overwrite.by Andrew Kozlik · b9f92ba8 · May 29, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Andrew Kozlik
docs(core): Document absence of SD salt overwrite.
[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 adds comments explaining why the code does not overwrite SD card salt files with random data before deleting them. It changes no behavior, logic, or security controls. The documentation argues that overwriting is unnecessary because the encrypted data key stored inside the device is already wiped when the salt is changed, so an old recovered salt cannot decrypt anything.
AI review queuedchore(deps): bump urllib3 in /tools/automatic_battery_testerby dependabot[bot] · 2bda8865 · May 29, 2026 · 1 fileMessage 93 · StrongInformational 15Details
Commit message · dependabot[bot]
chore(deps): bump urllib3 in /tools/automatic_battery_tester
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)
✓ 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
This is a routine automated dependency update by Dependabot that bumps the urllib3 library from version 2.6.3 to 2.7.0 inside a small internal testing tool (automatic_battery_tester). The change is a single line in a requirements file. There is no indication in the commit that this fixes a security issue, and the tool is not part of the Trezor firmware that runs on user devices.
Lower-prioritychore: drop `oldNixpkgs` from `shell.nix`by M1nd3r · 4501b2a1 · May 29, 2026 · 3 filesMessage 80 · StrongInformational 15Details
Commit message · M1nd3r
chore: drop `oldNixpkgs` from `shell.nix`
Importing `oldNixpkgs` is no longer needed, as SDL2 was replaced by SDL3, and they are not used anywhere else.
[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 is a routine build-environment cleanup. The developers removed an old copy of Nix packages (oldNixpkgs) used only for older SDL2 graphics libraries, because the project now uses SDL3. They added a compatibility package so old test emulators still work, and updated documentation and a download script to use a fuller Nix shell environment. There is no indication this changes any wallet, firmware, or cryptographic code, and no security relevance is claimed.
AI review queuedfix(core): skip bitcoin.signtx_decred test on BTC_ONLYby M1nd3r · 80c9f204 · May 29, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · M1nd3r
fix(core): skip bitcoin.signtx_decred test on BTC_ONLY
[no changelog]
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit only changes a test file so that a Decred signing test is skipped when the firmware is built in Bitcoin-only mode. It does not modify any production firmware code, wallet behavior, or cryptographic logic. There is no security issue here.
chore(python): chunkify printed fingerprints of fw-images
- Chunkifies fingerprints of fw-images, secmon, bootloader... - Makes visual comparison of expected and actual fingerprints easier.
[no changelog]
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
update trustboot or update path
AI analysis · Informational 15/100
This commit only changes how long hexadecimal fingerprints and hashes are displayed to users. It inserts spaces every four characters so the strings are easier to read and compare visually. There is no change to security logic, cryptography, or how firmware is verified.
AI review queuedtest(solana): sign message with many cosignersby Jakub Janků · e0b2dea3 · May 29, 2026 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Jakub Janků
test(solana): sign message with many cosigners
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 test case for Solana message signing with 64 cosigners and updates the expected screen snapshots used by automated testing. It does not change any firmware code that runs on the Trezor device, so it cannot introduce a security vulnerability or fix one.
AI review queuedchore(ci): skip `auto-assign` job for botsby M1nd3r · c784179b · May 29, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · M1nd3r
chore(ci): skip `auto-assign` job for bots
[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 pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This is a minor GitHub workflow change that stops an automatic pull-request assignment job from running when the pull request is opened by a bot account (whose username ends with '[bot]'). It has no security relevance to the Trezor firmware itself or to user funds.
Security candidatechore(docs): fix and improve doc-linksby M1nd3r · 92a46a45 · May 29, 2026 · 8 filesMessage 80 · StrongInformational 15Details
Commit message · M1nd3r
chore(docs): fix and improve doc-links
- Fixed broken links to non-existent places. - Replaced doc links to github by relative links to the md files. This allows to use `docs.trezor.io` without being needlessly transported to the github version of the linked doc page. - Replaced "links to symlinks" by" links to the original files". Symlinks do not work nicely on github - user must manually find the symlinked doc page.
[no changelog]
80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
boot or update pathdocumentation-only discount
AI analysis · Informational 15/100
This commit only updates documentation links inside the Trezor firmware repository. It fixes broken links, replaces GitHub URLs with relative links, and removes a symlinked documentation file. There are no code changes and no security impact.
Lower-prioritychore(translations): add [no changelog] to Crowdin pull commit messageby Michal Kazda · 355c2a50 · May 29, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Michal Kazda
chore(translations): add [no changelog] to Crowdin pull commit message
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 15/100
This commit only changes the automated message used when the project pulls translation updates from Crowdin. It adds a '[no changelog]' tag so the translation sync does not appear in release notes. There is no security relevance.
Lower-prioritychore(translations): PR will be draft, no longer limited to only main [no changelog]by Michal Kazda · 9340c66e · May 29, 2026 · 1 fileMessage 77 · AdequateInformational 15Details
Commit message · Michal Kazda
chore(translations): PR will be draft, no longer limited to only main [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
documentation-only discount
AI analysis · Informational 15/100
This is a routine GitHub workflow change for managing translation updates. It removes a restriction that previously allowed the workflow to run only from the 'main' branch, and it makes the automatically created pull request a draft instead of a normal one. There is no security relevance in the code change itself.