TZ
← All projectsTrezor

Trezor firmware

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

BitcoinHardware walletsNormal
Repository coverage

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

1125security candidates372second-pass queue2925AI analyses
297commits · 30 days
701commits · 60 days
1641commits · 180 days
2707commits · 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.

67/100 average clarity
635Strong · 80–100
1551Adequate · 60–79
1036Thin · 40–59
7Opaque · 0–39
1security candidate with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
tychovrahe343134322564
Roman Zeyde675214620372
obrusvit25395235364
PrisionMike10866106272
Andrew Kozlik833481268
Petr Susil202299
Jakub Janků591838180
Martin Pastyřík26823173
cepetr264106222059
M1nd3r24689227071
Ioan Bizău23076230059
Lukas Bielesch856784067
Analysis record

Published AI watches

Last scanned 12 minutes ago

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

chore(core): improvements to English copy

This commit is a routine text cleanup for the Trezor hardware wallet's on-screen English messages. It fixes punctuation, removes unnecessary line breaks, and makes small wording tweaks (for example, changing 'PIN will be required' to 'A PI…

1dbc2c3cby Michal Kazda+22−422 files
No security note in commit
Moderate 59 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): app root packet downgrade protection

This commit adds downgrade protection for a new 'app root packet' system in Trezor firmware. Previously, the code had a TODO note saying downgrade protection needed to be considered. The change makes the device remember the timestamps of p…

Replaces a TODO comment ('!@# TODO: Consider downgrade protection') with concrete timestamp-based anti-downgrade checksAdds per-ring timestamp state to prevent rollback of root-of-trust packetsAdds chain_timestamp field and 90-day drift bound to root packet format
4a9cf168by cepetr+335−3112 files
No security note in commit
Moderate 67 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/rust): discard low-order keys in THP handshake

This commit fixes a cryptographic edge case in Trezor's THP (Trezor Host Protocol) handshake. It now rejects Curve25519 public keys that are all zeros or that produce an all-zero shared secret. A zero public key can cause the Diffie-Hellma…

Curve25519 zero/low-order public key rejection added to DHZero shared-secret output rejected after scalar multiplicationHandshake state machine now transitions to Failed on initiation-response error
429a283dby M1nd3r+45−74 files
No security note in commit
Informational 11 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): enable `ward` with `miniscript`

This commit changes one line in a build configuration file for the Trezor hardware wallet firmware. It adds the 'ward' feature to the existing 'miniscript' feature set. There is no direct evidence in the commit that this is a security fix;…

Single-line Cargo.toml feature flag changeNo code logic modificationNo changelog or security note in commit message
d434a636by Jakub Janků+1−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): add `ward` feature flag

This commit adds a new disabled-by-default feature flag called 'ward' to the Trezor firmware build system. It does not change any production firmware behavior; it only wires up a placeholder MicroPython module and build options so that fut…

New feature flag is disabled by default and gated behind optional Cargo featuresCommit message explicitly states intent to exclude WARD from production firmware buildsNew MicroPython module is a stub with no exported functions beyond __name__
7b58e75aby Jakub Janků+55−018 files
No security note in commit
Low 27 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): enable -Wsign-compare

This commit turns on a compiler warning (-Wsign-compare) that catches places where signed and unsigned numbers are compared, and fixes the resulting warnings across the Trezor firmware. Most changes are clean-up casts and loop-index type c…

Compiler warning -Wsign-compare enabled, indicating prior signed/unsigned comparison issuesI/O return-value checks hardened against negative ssize_t values being treated as successPython binding offset/length validation tightened in Monero crypto module
1cc940a4by cepetr+162−15247 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge passphrase__access_hidden_wallet into passphrase__access_wallet

This commit is a simple user-interface cleanup. It removes one duplicate translation label ('Access hidden wallet') and makes the device use a single, consistent label ('Access wallet') when asking the user to confirm opening a passphrase-…

65402aecby Michal Kazda+2−103 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge passphrase__hidden_wallet into passphrase__wallet

This commit is a simple user-interface cleanup. It merges two translation labels that both meant 'Passphrase wallet' into a single label, and updates the screens that used the old duplicate label. There is no security-relevant behavior cha…

7ce6887fby Michal Kazda+5−184 files
No security note in commit
Low 45 AI analysisMessage 85 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/bootloader): keep the full block length for block-0 retries

This commit fixes a bug in the Trezor bootloader's firmware-update code. When updating firmware, the first block of data is fetched in two pieces: a small initial 'header prefetch,' then the rest. If a communication error happened and the …

Firmware update reliability bug in bootloaderBlock-0 retry path truncated data before hash verificationHash mismatch caused by buffer offset/size mismatch, not by attacker
dc937ba2by tychovrahe+81−711 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core/bootloader): separate image upload and image checks

This commit is a code cleanup in the Trezor bootloader. It moves the generic, image-type-agnostic parts of firmware upload (chunk receiving, retry logic, flash erasing/writing, timeouts) into a new reusable module called wf_image_upload.c,…

Refactor only: logic moved, not changed in security-relevant waysSame signature/version/model/downgrade checks remain in firmware-specific handlerSame flash erase/write sequence preserved in generic engine
caab7d9eby tychovrahe+772−4834 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove unused trezor_lib/ui feature

This commit removes an unused Rust Cargo feature flag called 'ui' from the Trezor firmware build configuration. It is a cleanup change: the feature was always enabled in practice, so the code now compiles unconditionally. There is no secur…

1436fbc6by cepetr+2−158 files
No security note in commit
Low 27 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/caesar): change confirm middle button

This commit changes how users confirm an Ethereum authorization screen on Trezor's 'Caesar' layout. Previously, the user had to hold down a button to approve; now a simple tap is enough. The change only affects the user-interface interacti…

UI confirmation gesture changed from hold-to-confirm to tap-to-confirmOnly affects EIP-7702 authorization flow on Caesar (T3B1) layoutTest fixture hashes updated for all supported languages
e231cc94by obrusvit+50−502 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): merge firmware and unix cargo packages

This commit is a routine internal cleanup that merges two separate build packages (one for real hardware firmware and one for the desktop emulator) into a single package. It moves source files into subdirectories and updates build scripts …

6be32440by cepetr+48−32025 files
No security note in commit
Informational 15 AI analysisMessage 67 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): test aes gcm only if enabled

This commit is a minor build/test maintenance change. It adds a feature flag (USE_AES_GCM) so that AES-GCM tests are only run when the feature is actually enabled in a particular firmware build. There is no security fix or vulnerability be…

890aca93by cepetr+13−14 files
No security note in commit
Informational 15 AI analysisMessage 95 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(python, tests): add and update GNU licence headers

This commit only adds or updates copyright and GNU license header comments in Python test and tooling files. It makes no changes to executable code, so it cannot introduce a security vulnerability or fix one.

6dc781c2by M1nd3r+1202−203250 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): move the multisig XPUB title into a translation template

This commit is a straightforward code cleanup: it moves the on-screen title for multisig XPUB screens from hard-coded English text into the device's translation system. The visible text remains essentially the same, and there is no securit…

6d69df16by Michal Kazda+20279−2023911 files
No security note in commit
Informational 15 AI analysisMessage 77 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): render translated strings verbatim in layouts

This is a cosmetic code cleanup. It moves punctuation and capitalization out of the Python code and into the translation files so translated strings are shown exactly as written. There is no security-relevant change.

162ed3a2by Michal Kazda+12−125 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core/bolt): remove unneeded `use` statements

This commit simply removes two unused Rust import statements (called `use` statements). It does not change any actual code behavior, logic, or security properties of the Trezor firmware.

a56f8c3dby Roman Zeyde+0−22 files
No security note in commit
Informational 18 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): add missing colon in Tron

This commit fixes a UI formatting bug in the Tron cryptocurrency flow on Trezor hardware wallets. A missing colon was added to account information labels shown on the device screen. The change is cosmetic and does not appear to affect cryp…

UI label formatting fix onlyNo changes to signature verification, key handling, or transaction authorizationNo buffer size, memory allocation, or input validation changes observed
739c2968by Michal Kazda+19332−193364 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): combine path/account with labels

This commit is a straightforward user-interface refactoring. It bundles an account/path label together with its corresponding value into a single tuple, instead of passing them as four separate arguments. There is no security-relevant chan…

c66f6f4dby Michal Kazda+51−7413 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/emu): implement --lang paramby obrusvit · 7699fc84 · Sep 12, 2026 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · obrusvit

feat(core/emu): implement --lang param

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfeat(core): reserve SRAM for external appsby cepetr · 1ecd07bd · Sep 11, 2026 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · cepetr

feat(core): reserve SRAM for external apps

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfeat(core): add mldsa44_verify smcallby cepetr · 0846f204 · Sep 11, 2026 · 11 filesMessage 57 · ThinTriage 0Details
Commit message · cepetr

feat(core): add mldsa44_verify smcall

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatefeat(core): introduce app_arenaby cepetr · cd29104c · Sep 11, 2026 · 47 filesMessage 47 · ThinInformational 15Details
Commit message · cepetr

feat(core): introduce app_arena

[no changelog]

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

This commit is a large internal refactor of the Trezor firmware's third-party application loading system. It replaces the old ELF-based app loader with a new 'app_arena' subsystem that uses a custom binary format, Merkle-tree header verification, and ML-DSA-44 root-of-trust signatures. The change is explicitly marked as a feature ('feat(core): introduce app_arena') with '[no changelog]' and contains no vendor statement that it fixes a security bug. It appears to be a planned architectural redesign, not a security patch.

Lower-prioritydocs(core): update embed-arch docsby cepetr · dafff53e · Sep 11, 2026 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · cepetr

docs(core): update embed-arch docs

[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
Lower-priorityfeat(stellar): add Centrifuge SEP-41 definitionsby Jakub Janků · 6ab901c1 · Sep 11, 2026 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · Jakub Janků

feat(stellar): add Centrifuge SEP-41 definitions

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityrefactor(stellar): link to Solv Protocol SEP-1 fileby Jakub Janků · fce695b7 · Sep 11, 2026 · 1 fileMessage 77 · AdequateTriage 0Details
Commit message · Jakub Janků

refactor(stellar): link to Solv Protocol SEP-1 file

... and remove redundant comments.

[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 review queuedfeat(solana): confirm space when creating accountsby Jakub Janků · 04ed8330 · Sep 11, 2026 · 4 filesMessage 85 · StrongLow 37Details
Commit message · Jakub Janků

feat(solana): confirm space when creating accounts

We already let the user confirm the space parameter of the Allocate
(With Seed) instruction. For consistency, do the same for the Create
Account (With Seed) instruction.

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 37/100

This commit adds an on-screen confirmation step for the 'space' (data size) parameter when creating new Solana accounts on a Trezor device. Previously, this parameter was hidden from the user during Create Account instructions, even though it was already shown for a related 'Allocate' instruction. The change improves consistency and helps users spot transactions that request unexpectedly large storage allocations, which could be a sign of a malicious or misleading transaction.

Lower-priorityfeat(core): report `Miniscript` capabilityby Roman Zeyde · 7ab83a2a · Sep 11, 2026 · 6 filesMessage 90 · StrongTriage 0Details
Commit message · Roman Zeyde

feat(core): report `Miniscript` capability

It would allow automatically skipping miniscript-related device tests
using `pytest.mark.capabilities(Capability.Miniscript)` marker.

[no changelog]

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Lower-priorityfix(core): add colons to info_items in Bolt layoutby Michal Kazda · 45b1c0a0 · Sep 10, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · Michal Kazda

fix(core): add colons to info_items in Bolt layout
[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
Security candidatetests(clear_signing): unit tests for .from_proto()by PrisionMike · 2aec9696 · Sep 10, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · PrisionMike

tests(clear_signing): unit tests for .from_proto()

[no changelog]

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 15/100

This commit only adds new unit tests for an existing Ethereum clear-signing decoder. It does not change any production firmware code, so it cannot introduce a security vulnerability or fix one directly. The tests document how the decoder currently handles various Ethereum ABI data shapes and which malformed inputs it rejects.

Lower-prioritytest(stellar): require stellar_sdkby Jakub Janků · 539d7a31 · Sep 10, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · Jakub Janků

test(stellar): require stellar_sdk

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Lower-priorityrefactor(core): simplify `strings.format_timestamp()`by Roman Zeyde · ae5d884e · Sep 10, 2026 · 3 filesMessage 85 · StrongTriage 0Details
Commit message · Roman Zeyde

refactor(core): simplify `strings.format_timestamp()`

No need to subtract and add `TIMEUTILS_SECONDS_1970_TO_2000`, since `MICROPY_TIMESTAMP_IMPL_LONG_LONG` is defined, therefore:
```
typedef long long mp_timestamp_t;
```

[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
Security candidatefeat(common,core,python,tests): support creating Stellar contracts.by Jun Luo · 95adcc90 · Sep 10, 2026 · 29 filesMessage 100 · StrongInformational 15Details
Commit message · Jun Luo

feat(common,core,python,tests): support creating Stellar contracts.

Support `CREATE_CONTRACT_V2` in `InvokeHostFunctionOp` and
`CREATE_CONTRACT_V2_HOST_FN` in Soroban authorization entries.

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
access controlsigning or wallet pathauthentication path
AI analysis · Informational 15/100

This commit adds support for a new Stellar blockchain feature: creating smart contracts (contract deployment) on Trezor hardware wallets. It extends the messages, layouts, serialization, and tests so users can review and sign Stellar 'create contract' transactions and related authorization entries. There is no indication of a security vulnerability in the change itself; it is a feature addition with explicit user confirmation steps and deliberate exclusions of unsupported variants.

Security candidaterefactor(core/stellar): prepare for contract creation support.by Jun Luo · 8d312f5c · Sep 10, 2026 · 9 filesMessage 90 · StrongInformational 14Details
Commit message · Jun Luo

refactor(core/stellar): prepare for contract creation support.

- Share the HashIDPreimage header (envelope type and network ID) between
the Soroban authorization payload and contract address derivation.
- Move the CONTRACT_ID_PREIMAGE_FROM_ASSET writer next to the other
writers.
- Rename `sac_address_from_asset` to `contract_address_from_asset` and
move it to `helpers.py`.
- Extract `_confirm_args` and `_same_xdr` for reuse.

[no changelog]

90/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
access controlsigning or wallet pathauthentication path
AI analysis · Informational 14/100

This commit is a routine internal code cleanup in the Stellar cryptocurrency support of Trezor firmware. It renames and moves helper functions, extracts reusable pieces, and adds tests. There is no change to user-visible behavior or security boundary, and no security issue is apparent.

Lower-priorityfeat(core): support NFC discovery in MicroPythonby Roman Zeyde · d1b96998 · Sep 10, 2026 · 4 filesMessage 57 · ThinTriage 0Details
Commit message · Roman Zeyde

feat(core): support NFC discovery in MicroPython

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-prioritychore(deps): add stellar_sdk>=15by Jakub Janků · 8c2a19ae · Sep 9, 2026 · 2 filesMessage 90 · StrongTriage 0Details
Commit message · Jakub Janků

chore(deps): add stellar_sdk>=15

trezorlib and parts of the device tests increasingly rely on
stellar-sdk, especially since the recent Soroban additions, and
trezorctl stellar is virtually useless without it. The package is
nevertheless still only an optional extra of trezorlib and has never
been installed in CI, so several problems went unnoticed for a long
time: typing errors (see 581e92f3 and 26535d93) or the test_xdr
fixtures that were never recorded (see 9a1ee9a312).

This commit adds stellar_sdk to workspace dependencies to make
trezorctl stellar usable out of the box and prevent similar issues
from occuring again in the future.

[no changelog]

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI review queuedfix(core): correct timestamp conversion in `time_gmtime2000()`by Roman Zeyde · d0f50b4d · Sep 9, 2026 · 4 filesMessage 95 · StrongLow 37Details
Commit message · Roman Zeyde

fix(core): correct timestamp conversion in `time_gmtime2000()`

It was working on the emulator (since `mp_int_t` is 64-bit)
but failing on HW devices.

Also, improve `test_lock_time_datetime` coverage.

Note: `2106-02-07 06:28:15` = 2**32-1 seconds from epoch.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 37/100

This commit fixes a date-handling bug in Trezor hardware wallets. The device converts Bitcoin transaction lock-time timestamps into human-readable dates on its screen. Before the fix, the code used a 32-bit signed integer on real hardware, so any date after the year 2038 (and in practice after about 2068 in this code) would be misread and the wrong date would be shown to the user. The fix switches to a 64-bit timestamp type and adds tests for far-future dates up to the year 2106. The main risk is that a user could be tricked into approving a transaction whose real lock-time date is different from what the device displays.

Lower-priorityci(core): exclude UI fixtures & coverage upload for unstable buildsby Roman Zeyde · 226a6f76 · Sep 9, 2026 · 1 fileMessage 87 · StrongTriage 0Details
Commit message · Roman Zeyde

ci(core): exclude UI fixtures & coverage upload for unstable builds

Will be used to exclude miniscript as well in a following PR.

[no changelog]

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
documentation-only discount
Lower-priorityfeat(core/rust): decrease size of Qstr type to u16by matejcik · f050b127 · Sep 9, 2026 · 2 filesMessage 77 · AdequateTriage 0Details
Commit message · matejcik

feat(core/rust): decrease size of Qstr type to u16

which is perfectly legal now that we have Attribute type to cover the
ffi::qstr case.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Lower-priorityfix(core): harden `zcash.f4unjumble()`by Roman Zeyde · 985af29e · Sep 9, 2026 · 1 fileMessage 57 · ThinTriage 8Details
Commit message · Roman Zeyde

fix(core): harden `zcash.f4unjumble()`

[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
defensive validation
Lower-priorityrefactor(core/rust): simplify device_menu_resultby matejcik · 2dda17f8 · Sep 9, 2026 · 1 fileMessage 72 · AdequateTriage 0Details
Commit message · matejcik

refactor(core/rust): simplify device_menu_result

no reason to call an attr function if the intention is to have a static
list of locals

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Lower-priorityrefactor(python): move stellar-sdk based code to trezorlib.stellar_sdk_helpersby Jakub Janků · 26535d93 · Sep 9, 2026 · 6 filesMessage 85 · StrongTriage 0Details
Commit message · Jakub Janků

refactor(python): move stellar-sdk based code to trezorlib.stellar_sdk_helpers

The new module imports stellar-sdk unconditionally, so pyright can narrow
isinstance() checks, which it refuses for names bound in a try/except
ImportError block. trezorlib.stellar keeps device communication only.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Lower-priorityfix(python): assert active XDR union arms in Stellar helpersby Jakub Janků · 581e92f3 · Sep 9, 2026 · 1 fileMessage 85 · StrongTriage 0Details
Commit message · Jakub Janků

fix(python): assert active XDR union arms in Stellar helpers

stellar-sdk declares every union arm as Optional, so pyright cannot tie
the discriminant check to the arm access.

[no changelog]

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Lower-prioritybuild: add ASAN toggle to tbench manifestby matejcik · 1e9ebe18 · Sep 9, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · matejcik

build: add ASAN toggle to tbench manifest

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