TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

923security candidates311second-pass queue2662AI analyses
323commits · 30 days
552commits · 60 days
1337commits · 180 days
2644commits · 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
482Strong · 80–100
1323Adequate · 60–79
863Thin · 40–59
5Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

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

Published AI watches

Last scanned 0 minutes ago

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 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
Low 27 AI analysisMessage 93 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

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

This commit is a small internal cleanup in Trezor's Ethereum signing code. It changes how two special 'magic' bytes (the transaction type markers for newer Ethereum transaction formats) are fed into the cryptographic hash. Previously the c…

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

test(core): test RLP self-encoding bytestrings

This commit only adds a new unit test to the Trezor firmware codebase. It verifies that very short Ethereum RLP-encoded byte strings and small positive integers encode to themselves, which is a known property of the RLP specification. No p…

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

chore(core): remove sha1 from regular FW

This commit removes the SHA-1 hashing function from the regular Trezor firmware. SHA-1 is an old, weak hash algorithm that is no longer considered secure for sensitive uses. The change deletes the code that exposes SHA-1 to apps running on…

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

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

This commit changes how a cryptographic library sets up secure connections. Previously, the code automatically calculated the public key from the private key. Now, the caller must provide the public key directly. This is a code-quality ref…

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

refactor(crypto): change order of parameters

This commit simply reorders the arguments of an internal function called dh() and updates every place that calls it. The actual math and security behavior are unchanged; it is a code cleanup with no security effect.

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

refactor(crypto): prefix enums

This commit simply renames two groups of internal status labels (called enums) in the Trezor firmware's cryptographic code. The old names like WAITING_FOR_REQUEST1 were shared between two different parts of the code, so the developer gave …

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

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

This commit fixes three places in the Trezor firmware's cryptographic code where a memory-clearing function could be called with a NULL pointer. In practice, passing NULL to memzero is harmless on Trezor's platform (it does nothing), but i…

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

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

This commit is a code cleanup (refactor) for the cryptographic handshake code used in Trezor devices. It changes how the other party's long-term public key is returned to the caller: instead of storing it inside an internal state structure…

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

refactor(xtask): rename ProjectProfile to ProjectConfig

This commit is a simple rename from 'ProjectProfile' to 'ProjectConfig' in two Rust source files. It only changes variable names, struct names, and error messages. There is no change to program logic, security behavior, or how data is hand…

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

refactor(xtask): introduce ResolvedBuildArgs

This commit is a straightforward internal code refactor in Trezor's build tooling. It introduces a new ResolvedBuildArgs structure that centralizes default values for command-line build options before they are used. There is no change to u…

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

refactor(xtask): make build args tristate

This commit is a straightforward internal refactor of the Trezor firmware build tool's command-line argument handling. It changes many on/off flags from plain booleans to optional booleans so they can explicitly be set to true, false, or l…

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

refactor(xtask): introduce build options

This commit is a straightforward internal code reorganization in Trezor's build tooling. It moves build-option definitions from one Rust source file to a new module and adds the ability to load those options from a configuration file. Ther…

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

feat(xtask): introduce build presets

This commit is a developer tooling change for the Trezor firmware build system. It introduces 'build presets'—named configuration bundles stored in TOML files—so developers can select common build settings with a single command-line flag i…

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

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

This commit is a routine update to a build-system manifest file used by Trezor's internal tooling. It reorganizes and re-labels feature flags (for example, moving options between 'Features', 'Debugging', and 'Signing' groups and simplifyin…

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

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

This commit adds a single configuration file for a Trezor developer tool (a VS Code extension). It only points the tool to existing folders in the repository and contains no executable code, no secrets, and no changes to firmware behavior.…

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

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

This commit is a simple internal code cleanup: it renames a Rust data structure called ResolvedBuild to ResolvedBuildFeatures and updates the places that use it. There are no functional changes, no security fixes, and no changes to how the…

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

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

This is a tiny code cleanup commit that replaces two calls to `ptr::null()` with Rust's `unwrap_or_default()` to silence automated Clippy lint warnings. It does not change what value is produced (still a null pointer when no salt is provid…

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

refactor(xtask): simplify dependencies

This commit is a straightforward internal code cleanup in Trezor's build tooling. It moves a data structure and two helper methods from one Rust source file to another and updates callers accordingly. There is no change to user-facing beha…

6268349fby cepetr+9−193 files
No security note in commit
Repository ledger

Explore captured commits

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

Lower-priorityfeat(core): allow caching recent THP paired hostnames and MAC addressesby Roman Zeyde · 2260cf4e · Sep 11, 2025 · 4 filesMessage 77 · AdequateInformational 20Details
Commit message · Roman Zeyde

feat(core): allow caching recent THP paired hostnames and MAC addresses

Only entries with bonded MAC addresses will be stored.

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

This commit adds a small cache that remembers recently paired Bluetooth-like device names and MAC addresses for Trezor's experimental Trezor Host Protocol (THP). It only stores entries whose MAC address is already bonded in the device's secure BLE storage. The change is purely additive and gated behind the USE_THP build flag. There is no direct evidence in the commit of a security vulnerability; it appears to be a feature implementation with a filtering safeguard.

Lower-priorityfeat(core): display recent THP `host_name` instead of BLE MAC addressby Roman Zeyde · 8ab6fb7b · Sep 11, 2025 · 3 filesMessage 77 · AdequateInformational 18Details
Commit message · Roman Zeyde

feat(core): display recent THP `host_name` instead of BLE MAC address

THP `host_name` will be cached during first pairing using its MAC address.

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

This commit is a user-experience improvement for Trezor hardware wallets that connect over Bluetooth. It makes the device menu show a friendly computer name (like "Alice's MacBook") instead of a raw Bluetooth MAC address for recently paired devices. The change also stores that friendly name in device flash memory the first time pairing happens. There is no direct security bug visible in the diff, but it slightly increases the amount of untrusted data (the host name supplied by the connecting computer) that is saved and later displayed on the device screen.

Lower-prioritychore: add protobuf definitions for THP hostname cacheby Roman Zeyde · 7f071183 · Sep 11, 2025 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore: add protobuf definitions for THP hostname cache

[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 new data structure definitions (protobuf messages) for a future feature that will cache recently paired host names and MAC addresses in Trezor's Trusted Host Protocol (THP). It does not change any runtime logic, parsing behavior, or security checks. There is no indication of a vulnerability or security fix.

Lower-priorityfeat(core/ui): ability to shift marquee verticallyby Ioan Bizău · 2fff6b13 · Sep 11, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău

feat(core/ui): ability to shift marquee vertically

[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 adds a small UI feature to the Trezor firmware: the ability to vertically shift the position of scrolling text (a 'marquee'). It introduces a new y_offset setting and makes the constructor a compile-time constant. There is no security relevance visible in the code change.

Lower-priorityrefactor(core): use `in_clip` in marqueeby Ioan Bizău · 0f5c3eaa · Sep 11, 2025 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · Ioan Bizău

refactor(core): use `in_clip` in marquee

The use of `in_window` caused issues with the vertical menu, which uses
`in_clip` internally. I had hacked around these problems using the
`y_offset`, but switching to `in_clip` solves all issues and is cleaner.

[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 small internal code cleanup in the Trezor firmware's user-interface code. It changes how a scrolling text effect (marquee) clips its drawing to the screen, removing a manual vertical offset workaround. There is no indication this change fixes a security vulnerability or affects device security.

Security candidatefeat(eckhart): menu item subtext can be a marqueeby Ioan Bizău · f4b52d8c · Sep 11, 2025 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Ioan Bizău

feat(eckhart): menu item subtext can be a marquee

[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 is a user-interface feature change for the Trezor hardware wallet's Eckhart design. It replaces a static text truncation behavior with a scrolling marquee animation for long subtext labels in menu items. There is no security-relevant change visible in the code.

Lower-priorityfeat(core): trim strings to specific bytes' limitby Roman Zeyde · 49f45373 · Sep 10, 2025 · 2 filesMessage 57 · ThinInformational 12Details
Commit message · Roman Zeyde

feat(core): trim strings to specific bytes' limit

[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 adds a new helper function that shortens text strings so they do not exceed a specified byte size. It is a routine feature addition with no obvious security bug, and there is no disclosed security issue tied to it.

Lower-prioritychore(python): bump `munch` to avoid `UserWarning`by Roman Zeyde · 3dca4d84 · Sep 10, 2025 · 2 filesMessage 74 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(python): bump `munch` to avoid `UserWarning`

[no changelog]

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

This commit simply updates a Python helper library called 'munch' from version 2.x to version 4.x in the project's dependency files. The stated reason is to remove a harmless user warning. There is no indication this change fixes or introduces a security problem.

Lower-priorityfix(core): increase bonds count immediately after receiving pairing completed messageby tychovrahe · b9d00529 · Sep 10, 2025 · 1 fileMessage 62 · AdequateLow 34Details
Commit message · tychovrahe

fix(core): increase bonds count immediately after receiving pairing completed message

[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 fixes a bookkeeping bug in the Bluetooth pairing code of Trezor hardware wallets. The device now correctly increments its count of bonded peers immediately when it receives confirmation that pairing completed. Previously, the count may have been updated late or missed, which could cause the wallet to incorrectly think it had no bonded Bluetooth devices or to allow more pairings than intended. The change is small and defensive, but the exact security consequences depend on how the stale count was used elsewhere in the firmware.

Security candidatefix(core/bootloader): increase wipe bonds timeoutby tychovrahe · 97c041f5 · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 23Details
Commit message · tychovrahe

fix(core/bootloader): increase wipe bonds timeout

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

This commit increases a timeout in the Trezor bootloader from 100 to 300 ticks while wiping Bluetooth pairing information ('bonds'). A too-short timeout could cause the wipe operation to fail or behave inconsistently if the Bluetooth chip takes longer to respond. The change is a hardening fix, not a clear-cut vulnerability patch, and the commit message does not describe any security impact.

Lower-priorityfeat(core): remove suspended charging mode from power manager.by kopecdav · 29851ab5 · Sep 10, 2025 · 3 filesMessage 62 · AdequateInformational 21Details
Commit message · kopecdav

feat(core): remove suspended charging mode from power manager.

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

This commit removes a special 'suspended charging' mode from the Trezor hardware wallet's power manager. Previously, if the device was suspended while plugged into USB or wireless power, it would wake up periodically to update the battery fuel gauge using actual charging current. Now it always uses a fixed self-discharge estimate instead. This is a feature simplification, not a clear security fix. It could make the displayed battery percentage slightly less accurate when charging while suspended, but there is no direct evidence it creates a security vulnerability.

Lower-priorityfeat(core): add pm_is_charging function to power manager api.by kopecdav · cde1f430 · Sep 10, 2025 · 5 filesMessage 62 · AdequateInformational 13Details
Commit message · kopecdav

feat(core): add pm_is_charging function to power manager api.

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

This commit adds a new helper function that reports whether the Trezor device is currently charging. It also refactors one existing suspend/resume check to use that helper. There is no indication of a security bug being fixed; it appears to be a routine feature/refactoring change.

Lower-priorityfeat(core): Update charging state evaluation.by kopecdav · 1ce4b92e · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 11Details
Commit message · kopecdav

feat(core): Update charging state evaluation.

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

This commit changes the order in which a Trezor hardware wallet decides whether its battery is charging, discharging, or idle. It now asks a dedicated helper function first instead of relying only on raw current readings. There is no indication in the commit that this fixes a security problem; it appears to be a routine improvement to charging-state detection.

Lower-prioritychore(core): remove unused macro.by kopecdav · 86ccd77d · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · kopecdav

chore(core): remove unused macro.

[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 one unused macro named PM_SUSPENDED_CHARGING_TIMEOUT_S from a header file in the Trezor firmware's power management code for the STM32U5 chip. A macro is a named constant used by programmers; 'unused' means no code referenced it anymore. There is no functional change, no bug fix, and no security relevance visible in the change.

Lower-priorityfeat(core): add __WFI to suspend charging loop.by kopecdav · f5ec327c · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 11Details
Commit message · kopecdav

feat(core): add __WFI to suspend charging loop.

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

This commit adds a single CPU instruction called __WFI (Wait For Interrupt) inside the charging loop of a Trezor hardware wallet's suspend routine. It tells the processor to idle until an interrupt occurs, which is a normal power-saving measure. There is no direct evidence in the commit that this fixes a security vulnerability; it appears to be a power-management or stability improvement.

Lower-priorityfeat(core): add suspend, resume and wakeup params into rgb led driver.by kopecdav · e72d420c · Sep 10, 2025 · 2 filesMessage 62 · AdequateInformational 11Details
Commit message · kopecdav

feat(core): add suspend, resume and wakeup params into rgb led driver.

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

This commit adds new power-management functions to the RGB LED driver in Trezor's hardware wallet firmware. It lets the device remember what LED effect was running before sleep, then restore it after waking up. There is no obvious security bug in the change itself.

Lower-priorityfeat(core): introduce charging rgb led effect into the suspend module.by kopecdav · bd699c69 · Sep 10, 2025 · 3 filesMessage 62 · AdequateInformational 18Details
Commit message · kopecdav

feat(core): introduce charging rgb led effect into the suspend module.

[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 changes how the Trezor hardware wallet's RGB LED behaves when the device is suspended while charging. Previously the LED driver was fully shut down; now it stays partially active to show a charging light effect. There is no obvious security bug in the change itself, but it slightly increases the amount of code that runs before the device enters its deepest sleep state.

Security candidatebuild(crypto): fix CI build errorby Roman Zeyde · d166c9e7 · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Roman Zeyde

build(crypto): fix CI build error

[no changelog]

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

This commit changes two fixed text strings inside the ChaCha20 code from C string literals to explicit character arrays. The strings are public constants used by the ChaCha20 algorithm ('expand 32-byte k' and 'expand 16-byte k'). The commit title says it fixes a CI build error, and there is no evidence in the diff or commit message of any security bug, memory issue, or behavior change beyond how the compiler stores these constants.

Security candidatechore(crypto): update secp256k1 submodule to 0.7.0by Roman Zeyde · 9491ab65 · Sep 10, 2025 · 1 fileMessage 62 · AdequateInformational 11Details
Commit message · Roman Zeyde

chore(crypto): update secp256k1 submodule to 0.7.0

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

This commit updates a bundled cryptographic library (secp256k1-zkp) from one version to another. No actual code changes are shown, and the commit message does not describe any security fix. On its own, this looks like a routine dependency maintenance update.

Lower-priorityfeat(core): expose battery SoC to uPyby obrusvit · a020ffe7 · Sep 10, 2025 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · obrusvit

feat(core): expose battery SoC to uPy

- uPython application layer can now get state of charge (soc)
information from the power manager

[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 adds a new function that lets the device's Python-based software read the battery percentage from the power manager. It is a straightforward feature addition with no apparent security implications.

Lower-priorityfeat(core/firmware): add battery SoC to Featuresby obrusvit · 05a19e72 · Sep 10, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · obrusvit

feat(core/firmware): add battery SoC to Features

[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 adds a new piece of information—battery charge percentage (SoC, State of Charge)—to the device's public 'Features' response. It only reads a value from the power manager and exposes it. There is no security-sensitive change: no new permissions, no bypass of protections, no handling of secrets, and no memory-safety issue visible in the diff.

Security candidatechore(core): update T3W1 embedded binariesby tychovrahe · 7fd3e1c9 · Sep 10, 2025 · 3 filesMessage 57 · ThinInformational 3Details
Commit message · tychovrahe

chore(core): update T3W1 embedded binaries

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

This commit swaps in newer pre-built binary files for the T3W1 hardware model's bootloader and Bluetooth firmware, plus updates the recorded cryptographic hashes that the build system expects. The change log says '[no changelog]' and the title calls it a routine chore. There is no visible source-code change, no description of a security fix, and no independent evidence that this update addresses a vulnerability.

Lower-priorityfix(core): use `ble__forget_this_success` on success screenby Roman Zeyde · 375ead99 · Sep 10, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

fix(core): use `ble__forget_this_success` on success screen

[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 fixes a tiny user-interface wording mistake. After successfully unpairing a Bluetooth device, the Trezor screen was accidentally showing the message intended for the confirmation prompt ('forget this device?') instead of the success message ('device forgotten'). There is no security issue—just the wrong label on the success screen.

Lower-prioritytest(core): add a simple test for `BleUnpair`by Roman Zeyde · ab091ac2 · Sep 10, 2025 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Roman Zeyde

test(core): add a simple test for `BleUnpair`

[no changelog]

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds a new automated test that checks the Bluetooth 'unpair all' feature on one Trezor model. It does not change any production firmware code, so it cannot introduce a security vulnerability by itself.

Lower-priorityfix(core): don't send `ButtonRequest` after unpairingby Roman Zeyde · 3bf6da87 · Sep 10, 2025 · 1 fileMessage 89 · StrongInformational 19Details
Commit message · Roman Zeyde

fix(core): don't send `ButtonRequest` after unpairing

Otherwise, it will fail since BLE is disconnected.

[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 is a small bug fix in the Trezor hardware wallet firmware. After a user unpairs a Bluetooth device, the device was trying to send a button-press request over the now-disconnected Bluetooth link, which would fail. The fix stops sending that request during the success screen shown right after unpairing. It is a robustness fix, not a security vulnerability fix.