KX
← All projectsKrux

Krux

Open-source signing firmware for Kendryte K210 devices.

BitcoinHardware walletsNormal
Repository coverage

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

58security candidates41second-pass queue216AI analyses
5commits · 30 days
41commits · 60 days
97commits · 180 days
200commits · 365 days
Backfill bands
Aug 5 → Feb 6116 seen6 candidatesComplete
Feb 6 → Jun 639 seen3 candidatesComplete
Jun 6 → Jul 622 seen1 candidatesComplete
Jul 6 → Aug 538 seen5 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.

65/100 average clarity
60Strong · 80–100
66Adequate · 60–79
81Thin · 40–59
16Opaque · 0–39
6security candidates 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.
Odudex291429272
odudex902989159
Tads361036063
qlrd18216082
kdmukai424066
tadeubas414038
kkdao12012083
Jean Do1006072
Naman015505060
bitcoisas505066
Naman Gupta202079
SatsCzar202062
Analysis record

Published AI watches

Last scanned 26 minutes ago

Moderate 66 AI analysisMessage 45 · Thin
KX KruxKrux BitcoinHardware wallets

Merge branch 'release-26.08.0'

This is a routine release merge for Krux firmware (version 26.08.0). It includes several genuine security fixes: a heap buffer overflow in camera-based entropy generation for a discontinued device, stricter fee calculation when signing Bit…

Heap buffer overflow fix in camera entropy module (discontinued Maix Bit only)PSBT fee calculation stricter checks and unverified-input-amount warningStored mnemonic file corruption now preserved instead of overwritten
be5eda28by odudex+4335−3028123 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 40 · Thin
KX KruxKrux BitcoinHardware wallets

docs: update CHANGELOG

This commit only updates three date lines in the CHANGELOG.md file, changing '2025' to '2026' for three release entries. It does not modify any source code, build scripts, or documentation with security implications. The change is purely c…

ec058d86by odudex+3−31 file
No security note in commit
Moderate 66 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: bind BBQr parts to the first part of the stream

This commit fixes Krux's QR code scanner so that when it reads a series of animated BBQr codes, every later frame must match the encoding and file type announced by the first frame, must agree on the total number of frames, and cannot over…

Input validation added for multi-part BBQr streamsMemory exhaustion mitigation via accumulated payload capAnti-splicing: parts must agree with first part's encoding and file type
0b3e01b7by odudex+86−13 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KX KruxKrux BitcoinHardware wallets

docs: update CHANGELOG

This commit only updates the project's CHANGELOG.md file. It adds text describing several bug fixes and improvements that were apparently made in prior code changes, but no actual code is changed in this commit. By itself, this documentati…

4c05cefbby odudex+9−11 file
No security note in commit
Informational 0 AI analysisMessage 40 · Thin
KX KruxKrux BitcoinHardware wallets

chore(Maixpy): bump cUR

This commit appears to be a routine version bump of a component called 'cUR' inside the MaixPy firmware build. No actual code changes are visible in the provided diff, and the commit message gives no indication of a security fix or vulnera…

74d6ed40by odudex+1−11 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
KX KruxKrux BitcoinHardware wallets

chore: bump version to 26.08.0

This commit is a routine version bump from 26.04.0 to 26.08.0. It only updates version strings in documentation, build files, and source metadata. No code behavior changes. The changelog text mentions a previously fixed heap buffer overflo…

Changelog references a prior heap buffer overflow in Shannon entropy module (camera frame copy into fixed 320x240 RGB565 buffer)No actual code or security fix present in this commit
dea991dfby odudex+5−55 files
Vendor flagged security relevance
Informational 2 AI analysisMessage 57 · Thin
KX KruxKrux BitcoinHardware wallets

chore: bump MaixPy with updated glyphs

This commit appears to update a submodule or dependency called MaixPy to a newer version that includes updated visual glyphs (small icons/symbols). The title and message describe it as a routine maintenance chore, not a security fix. No ac…

a9329228by odudex+1−11 file
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: register embed_fire in the bdftokff device list

This commit fixes a build-time font-generation script so that a newly supported device ('embed_fire') is recognized. Before the fix, the script printed an error but still produced the same font files. There is no security issue.

f15308e4by odudex+1−01 file
No security note in commit
Moderate 63 AI analysisMessage 57 · Thin
KX KruxKrux BitcoinHardware wallets

docs: add PSBT input amount fixes to CHANGELOG

This commit only updates the project's CHANGELOG.md to document earlier fixes related to PSBT (Partially Signed Bitcoin Transaction) fee and amount handling. It does not contain any code changes itself. The changelog entries describe secur…

Changelog documents prior PSBT fee/amount validation fixesMentions insufficient coordinator data as a security concernNo actual code or test changes in this commit
48920c31by odudex+4−01 file
Vendor flagged security relevance
High 78 AI analysisMessage 95 · Strong
KX KruxKrux BitcoinHardware wallets

fix: verify PSBT input amounts before showing the fee

This commit fixes a security flaw in Krux, a Bitcoin signing device. Before the fix, an attacker could trick the device into showing a low transaction fee on screen while actually signing a much higher fee. The fix makes the device verify …

Fixes fee-display/sighash amount mismatchAdds prevout txid hash verification for non_witness_utxoMandates non_witness_utxo for legacy inputs
fc808059by odudex+353−122 files
Vendor flagged security relevance
Moderate 66 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: reject a PSBT whose outputs exceed its inputs

This commit fixes a bug in Krux, a Bitcoin signing device, where a malformed transaction whose outputs spend more than its inputs could be loaded and shown to the user. Normally such a transaction is impossible on the Bitcoin network, but …

Input validation gap in PSBT parsingUI rendering bug masking invalid transaction economicsPotential social-engineering / user-confusion attack
d6813d88by odudex+52−02 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 50 · Thin
KX KruxKrux BitcoinHardware wallets

i18n: translate the unverified input amounts warning

This commit only adds translations for two existing warning messages in the Krux Bitcoin hardware wallet software. It does not change any code logic, security behavior, or fix any vulnerability. The messages warn users that displayed fees …

bdaed1a1by odudex+46−023 files
No security note in commit
Moderate 62 AI analysisMessage 90 · Strong
KX KruxKrux BitcoinHardware wallets

feat: warn when PSBT input amounts cannot be verified

This commit adds a warning screen to Krux, a hardware signing device, when it is asked to sign a multi-input Bitcoin transaction where the amounts of some inputs cannot be independently verified. The risk is that a malicious transaction co…

New user-facing warning for unverified multi-input SegWit amountsDetection logic tied to BIP143 signature semantics and inp.is_verifiedDoes not enforce previous-transaction inclusion; user can still proceed
518b3314by odudex+159−24 files
Vendor flagged security relevance
Low 27 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: render negative amounts correctly in format_btc

This commit fixes a display bug in how Krux formats negative Bitcoin amounts. Previously, a value like -1000 satoshis was shown incorrectly as roughly -1.99 bitcoins instead of -0.00001 bitcoins, because the code split the number before ha…

UI/display bug in financial amount renderingNo cryptographic, authorization, or memory-safety changesNo input validation, parsing, or serialization of untrusted data changed
c7e48ae1by odudex+22−12 files
No security note in commit
Moderate 53 AI analysisMessage 62 · Adequate
KX KruxKrux BitcoinHardware wallets

docs: add Maix Bit removal and Shannon calc fix to CHANGELOG

This commit is a documentation update to the project's changelog. It describes two security-related changes that were apparently made in earlier code: a heap buffer overflow in the camera-based entropy (randomness) module that could only b…

Heap buffer overflow in camera entropy / Shannon entropy moduleOut-of-bounds write of 49,152 bytes on discontinued Maix Bit deviceRemoval of deterministic os.urandom() PRNG from firmware
b0a7357eby odudex+7−01 file
Vendor flagged security relevance
Moderate 55 AI analysisMessage 82 · Strong
KX KruxKrux BitcoinHardware wallets

chore: bump MaixPy with Shannon changes and RNG removal

This commit updates a bundled firmware component called MaixPy. The commit message says it fixes a 'Shannon heap overflow,' removes an unused random-number binding, and drops support for one hardware variant (Maix Bit). A heap overflow is …

Commit message explicitly mentions fixing a heap overflowRemoval of an unused cryptographic/randomness binding (os.urandom)Submodule bump only; no source-level patch visible in this commit
5c4ece9aby odudex+1−11 file
Vendor flagged security relevance
Moderate 52 AI analysisMessage 85 · Strong
KX KruxKrux BitcoinHardware wallets

fix: remove Maix Bit and CIF camera support

This commit removes support for an old, discontinued hardware device called the Maix Bit from the Krux Bitcoin wallet firmware. The commit message says the Maix Bit's camera resolution (CIF) was the only one that fed frames larger than QVG…

Buffer overflow / scratch buffer overflow claimed in commit message (49,152 bytes)Removal of vulnerable hardware code path rather than hardening the entropy moduleDiscontinuation of affected device reduces real-world exposure
8090ac73by odudex+11−1279 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 90 · Strong
KX KruxKrux BitcoinHardware wallets

refactor: use native uUR on tests and simulator

This commit is a routine engineering cleanup: it removes a Python-only compatibility layer (a 'shim') used for testing and simulation, and makes the test environment use the same C-language UR encoder/decoder module that the real hardware …

2fe2f5f5by odudex+108−24919 files
No security note in commit
Low 34 AI analysisMessage 62 · Adequate
KX KruxKrux BitcoinHardware wallets

refactor: catch Exception, not bare except, in parse_wallet fallbacks

This commit tightens error handling in Krux's wallet parsing. Previously, the code used bare 'except:' clauses that would catch everything, including KeyboardInterrupt and SystemExit. Those special exceptions should normally be allowed to …

Bare except clauses replaced with except Exception to avoid swallowing KeyboardInterrupt/SystemExitNew regression test ensures KeyboardInterrupt propagates through all parse_wallet fallback branchesComments explicitly call out untrusted input and interrupt propagation behavior
6f617710by kkdao+42−72 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: replace `poetry` to `uv` as venv managerby qlrd · a8eca7c8 · Jun 17, 2026 · 3 filesMessage 90 · StrongInformational 15Details
Commit message · qlrd

feat: replace `poetry` to `uv` as venv manager

This commit replaces the current virtualenv manager to `uv`. It's a
battle tested one and well accepted by community. It do not changes the
current behaviour of `poe` tasks, instead, we noted a faster run with
this manager.

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

This commit swaps the project's Python virtual-environment and dependency-lock tooling from Poetry to uv. It deletes the old Poetry lockfile (poetry.lock), updates pyproject.toml to use uv-compatible metadata, and adds a new uv lockfile (uv.lock). There is no change to application source code, runtime behavior, or installed dependencies, and nothing in the commit indicates a security fix or vulnerability.

Lower-priorityrefactor: dedupe flipped-orientation check via is_flipped_orientationby kkdao · 3decdfd0 · Jun 15, 2026 · 2 filesMessage 85 · StrongInformational 15Details
Commit message · kkdao

refactor: dedupe flipped-orientation check via is_flipped_orientation

The orientation check was implemented in three places. Settings.is_flipped_
orientation() now uses self.hardware (it's a Settings method) instead of
rebuilding Settings() twice, and display.to_landscape/to_portrait call that
helper instead of re-implementing the hasattr/getattr inline. Consolidates the
logic to one place and removes redundant Settings() builds (also benefits
camera.py callers). Behavior unchanged.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a straightforward internal cleanup: it moves a repeated screen-rotation check into a single shared helper and makes that helper use its existing object instead of creating new temporary settings objects. There is no user-facing behavior change and no security relevance.

Lower-priorityrefactor: read Settings() once in display.py orientation/init pathsby kkdao · 5eb27afe · Jun 15, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · kkdao

refactor: read Settings() once in display.py orientation/init paths

to_landscape/to_portrait built a fresh Settings() namespace tree twice per
call and initialize_lcd built it three times. Read it once into a local and
reuse. Behavior unchanged.

85/100 · StrongMessage clarity
✓ Specific, 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 straightforward internal code cleanup: it reads device settings once and reuses the result instead of reading them multiple times. The commit message and diff show no change in behavior, no bug fix, and no security relevance.

Lower-priorityfix: narrow bare except blocks to stop hiding real errors (#877)by kkdao · c2048960 · Jun 12, 2026 · 6 filesMessage 100 · StrongLow 37Details
Commit message · kkdao

fix: narrow bare except blocks to stop hiding real errors (#877)

* fix: narrow bare except to StopIteration in display_qr_codes
* test: lock in StopIteration narrowing in display_qr_codes
* fix: narrow bare except to Exception in Key.extract_fingerprint
* test: lock in Exception narrowing in extract_fingerprint
* fix: narrow bare excepts in qr.py (IndexError / Exception)
* test: lock in detect_format Exception narrowing
* test: cover narrowed except branches in qr.py
* fix: narrow has_sd_card bare except to Exception

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✓ Links an issue, advisory, or supporting reference
AI analysis · Low 37/100

This commit tightens several 'catch-all' error handlers in the Krux firmware so they only catch the specific problems they intend to handle. Previously, these handlers would also swallow serious system-level signals such as KeyboardInterrupt and unexpected programming errors, which could hide bugs or prevent a user from cancelling an operation. The change is defensive hardening rather than a fix for a known active attack, but it removes a class of reliability and safety bugs.

Lower-priorityfix: make settings reads non-mutating and harden malformed settings handling (#874)by kkdao · 7368ca45 · Jun 9, 2026 · 2 filesMessage 93 · StrongLow 48Details
Commit message · kkdao

fix: make settings reads non-mutating and harden malformed settings handling (#874)

* refactor: make Store.get() a non-mutating read-only walk
* fix: harden Store.__init__ against malformed persisted settings
* fix: validate persist.location is a known path in Store.__init__
* fix: harden Store.set/delete against non-dict namespace levels

93/100 · StrongMessage clarity
✓ 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
Why it was queued
defensive validation
AI analysis · Low 48/100

This commit fixes bugs in how Krux reads and writes its saved settings. Previously, simply reading a setting could silently change the stored data, and a corrupted settings file (for example, one where a category was accidentally a word instead of a group) could crash the app or be misinterpreted. The patch makes reads truly read-only, repairs bad structure when writing, and only accepts known storage locations. It is a defensive hardening change rather than a fix for an active attack, but it removes several ways a tampered or damaged settings file could destabilize the device.

Lower-prioritydocs: add Spanish Krux video tutorialby odudex · b049b8e8 · Jun 9, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · odudex

docs: add Spanish Krux video tutorial

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 adds a Spanish-language video tutorial link to the documentation page. It is a non-code change with no security relevance.

Lower-prioritydocs: serve templates page at folder URL via index.mdby odudex · cd9ccf02 · Jun 8, 2026 · 5 filesMessage 85 · StrongInformational 15Details
Commit message · odudex

docs: serve templates page at folder URL via index.md

Rename templates.en.md to index.en.md so the page is served at the
folder URL, fixing the confusing leading '..' in image paths. Wrap it
in its own nav section so navigation.indexes labels it 'Templates'
instead of absorbing it into 'Interface'.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a documentation reorganization. It renames a templates page so it appears at a cleaner web address and updates internal links accordingly. There is no change to the Krux software, device firmware, or any security-sensitive code.

AI review queueddocs: drop all third-party assets, add CSPby odudex · 6a7a357f · Jun 8, 2026 · 7 filesMessage 85 · StrongLow 42Details
Commit message · odudex

docs: drop all third-party assets, add CSP

Make the docs site fully self-contained so no remote code or assets load
in visitors' browsers:

- System font stack (theme.font: false) instead of Google Fonts
- Video tutorials as a title + link list, dropping YouTube thumbnails
- Shortcode emoji replaced with inline Material icons
- Remove the gitmind.com mind-map iframes (navigation page)
- Add a Content-Security-Policy meta tag (overrides/main.html) that
blocks external scripts/styles/fonts/frames, preventing a polyfill.io
style CDN injection at the browser level

85/100 · StrongMessage clarity
✓ 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
second-pass: broader security terminology
AI analysis · Low 42/100

This commit hardens the Krux documentation website by removing all embedded third-party content (YouTube thumbnails, Google Fonts, gitmind.com iframes) and adding a browser-level Content-Security-Policy. The goal is to prevent attackers who compromise a third-party service (like a CDN) from injecting malicious code into visitors' browsers when they read the docs. It is a preventive security improvement, not a fix for an active vulnerability in Krux's hardware wallet firmware itself.

Security candidatedocs: self-host math, remove MathJax/require.js CDNby odudex · 492820a1 · Jun 8, 2026 · 28 filesMessage 90 · StrongLow 37Details
Commit message · odudex

docs: self-host math, remove MathJax/require.js CDN

Pre-render the entropy page display equations to committed SVGs and
write inline math as plain HTML, removing the cdnjs MathJax and
require.js loads (same supply chain class as the polyfill.io incident).
render_docs_math.py regenerates the SVGs from the markdown. Also ignore
mkdocs (public/) and pytest-cov (htmlcov/) build output.

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
entropy or randomnessseed or entropy path
AI analysis · Low 37/100

This change removes third-party web scripts (MathJax and require.js loaded from a content delivery network) from the project's documentation and replaces them with self-hosted, pre-rendered math images. That eliminates a supply-chain risk similar to the polyfill.io incident, where a compromised or malicious CDN could inject harmful code into documentation pages viewed by users or developers.

Lower-prioritychore(mkdocs.yml): Remove polyfill.io from extra_javascriptby SatsCzar · de3c8300 · Jun 6, 2026 · 1 fileMessage 62 · AdequateModerate 50Details
Commit message · SatsCzar

chore(mkdocs.yml): Remove polyfill.io from extra_javascript

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 · Moderate 50/100

This commit removes a reference to polyfill.io from the project's documentation website configuration. Polyfill.io is a third-party JavaScript service that was used to make documentation pages work in older browsers. It became a security concern in 2024 when the polyfill.io domain was reported to have served malicious code to websites in some cases. Removing it reduces the risk that visitors to the Krux documentation site could be served malicious JavaScript by that external service. The change is defensive and does not by itself prove an attack occurred against Krux users.

Lower-prioritychore(mkdocs.yml): Remove polyfill.io from extra_javascriptby SatsCzar · d2bff6b5 · Jun 6, 2026 · 1 fileMessage 62 · AdequateLow 46Details
Commit message · SatsCzar

chore(mkdocs.yml): Remove polyfill.io from extra_javascript

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 46/100

This commit removes a reference to polyfill.io from the project's documentation website configuration. Polyfill.io was a widely used service that provides JavaScript code to help older browsers support modern web features. In 2024, the polyfill.io domain was acquired by a new operator and was reported to have served malicious code to some users through a supply-chain attack. Removing it reduces the risk that visitors to the documentation site could load untrusted or malicious JavaScript. However, this change only affects the documentation website, not the Krux device firmware or wallet software itself.

Lower-prioritychore: add min / recommended / latest tested python version to ciby qlrd · 249c8dbf · Jun 5, 2026 · 3 filesMessage 87 · StrongInformational 15Details
Commit message · qlrd

chore: add min / recommended / latest tested python version to ci

This commit add a restricted range of python versions on
`pyproject.toml` and testing those three versions on CI

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

This commit is purely a maintenance change to the project's build and test setup. It expands the officially supported Python versions from only 3.12.3 to a range from 3.11.5 up to (but not including) 3.13, and updates the continuous integration (CI) tests to run against two specific versions: 3.11.5 and 3.12.13. There are no changes to application code, user-facing behavior, or security-sensitive logic.

Lower-priorityfix: hide QR title in line/region modes to avoid index overlapby odudex · 04300401 · Jun 5, 2026 · 1 fileMessage 74 · AdequateInformational 16Details
Commit message · odudex

fix: hide QR title in line/region modes to avoid index overlap

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

This commit fixes a display bug in Krux, a Bitcoin hardware wallet tool. When showing QR codes in certain zoomed modes (line/region), a title text could overlap with on-screen index numbers, making the screen confusing. The fix simply hides the title in those modes. There is no direct evidence this is a security vulnerability.

Security candidatechore: update Embit and Maixpy to latestby odudex · b9b269c7 · May 30, 2026 · 2 filesMessage 57 · ThinInformational 0Details
Commit message · odudex

chore: update Embit and Maixpy to latest

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 0/100

This commit updates two bundled dependencies (Embit and MaixPy) to their latest versions. No source code diff is available, and the commit message describes it as a routine maintenance chore with no security claims.

Lower-prioritydocs: add `SECURITY.md` file (#817)by qlrd · 07805a5b · May 26, 2026 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · qlrd

docs: add `SECURITY.md` file (#817)

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only adds a SECURITY.md file to the repository. It is a documentation-only change that tells people how to report security bugs. It does not change any code, fix any vulnerability, or introduce any security risk.

Lower-prioritydocs: tighten and clarify CONTRIBUTING.mdby odudex · 933e4d0b · May 25, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · odudex

docs: tighten and clarify CONTRIBUTING.md

Make the contribution guide more concise, trim topics beyond the document's scope, and fix inaccuracies

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit is a routine rewrite of the project's CONTRIBUTING.md guide. It shortens instructions for contributors, fixes wording, and updates examples, but does not change any program code, build scripts, tests, or security behavior. There is no security issue here.

Lower-prioritydocs: add `CONTRIBUTING.md` fileby qlrddev · db7641d5 · May 23, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · qlrddev

docs: add `CONTRIBUTING.md` file

`CONTRIBUTING.md` is a important file that guides new developers through
the standards built by krux team through years. This isn't a monad and
could be changed at time to time.

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

This commit only adds a CONTRIBUTING.md file to the repository. It is a documentation-only change that explains how people can contribute to the Krux firmware project. There are no code changes, no bug fixes, and no security-related modifications.

Lower-prioritydocs: add Embit and k_quirc updates to CHANGELOGby odudex · 9ef58035 · May 14, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · odudex

docs: add Embit and k_quirc updates to 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 only updates the project's CHANGELOG.md to document two prior dependency changes (an Embit library update and replacing a custom QR-code decoding library with k_quirc). It contains no code changes, no bug fixes, and no security claims.

Security candidatechore(firmware): bump MaixPy to k_quirc + bump uUC + Maixpy cleanupby odudex · 834d75be · May 14, 2026 · 1 fileMessage 62 · AdequateInformational 10Details
Commit message · odudex

chore(firmware): bump MaixPy to k_quirc + bump uUC + Maixpy cleanup

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 10/100

This commit appears to be a routine maintenance update that bumps the MaixPy firmware submodule to a newer version and updates another component (uUC). The title describes it as a cleanup chore. No actual code changes are visible in the provided diff, and no security-related information is present in the commit message or materials.

Lower-prioritychore: update Embit requires Docker image and toolchain rebuild in order to have compliant python version.by odudex · 5271ebdb · May 14, 2026 · 2 filesMessage 89 · StrongInformational 15Details
Commit message · odudex

chore: update Embit
requires Docker image and toolchain rebuild in order to have compliant python version.

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 15/100

This commit updates the build environment for the Krux project. It changes the Docker base image from an older Debian version (Bullseye with GCC 9.5.0) to a newer one (Bookworm with GCC 12) and updates the bundled 'embit' library. The commit message frames this as a routine maintenance chore needed to keep Python versions compatible. There is no indication in the commit itself that this fixes a security vulnerability.

Lower-priorityfeat(i18n): add Standard and Vertical strings for stackbit menuby bitcoisas · effba1bb · May 14, 2026 · 11 filesMessage 62 · AdequateInformational 15Details
Commit message · bitcoisas

feat(i18n): add Standard and Vertical strings for stackbit menu

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

This commit only adds translated text strings for two menu labels, 'Standard' and 'Vertical', used in the stackbit feature. It does not change any program logic, security checks, or data handling. There is no security relevance.

Lower-prioritydocs: add Stackbit 1248 vertical layout to CHANGELOGby bitcoisas · aa2751d9 · May 14, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · bitcoisas

docs: add Stackbit 1248 vertical layout to 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 15/100

This commit only updates the project's CHANGELOG.md file to document a new vertical layout option for the Stackbit 1248 backup display. It adds three lines of text describing a user-facing feature. There are no code changes, no configuration changes, and no security-relevant modifications.

Lower-prioritytest: add tests for Stackbit 1248 vertical layoutby bitcoisas · c6bd35bb · May 14, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · bitcoisas

test: add tests for Stackbit 1248 vertical layout

Test grouped/compact layouts + 24-word pagination.

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

This commit only adds and updates automated tests for a backup-screen layout feature called Stackbit. It does not change any production code, so it cannot introduce a security vulnerability or fix one.

Lower-priorityfeat: add vertical export methods to Stackbit 1248by bitcoisas · e04b36a1 · May 14, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · bitcoisas

feat: add vertical export methods to Stackbit 1248

Add grouped and compact export methods.

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 new on-screen backup layout options for a Bitcoin hardware wallet feature called Stackbit 1248. It only changes how the wallet's seed phrase is drawn on the device display so users can physically punch it into a metal backup card. There is no security vulnerability visible in the change.

Lower-prioritydocs: add Stackbit 1248 vertical layout screenshots and documentationby bitcoisas · a7fcea84 · May 14, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · bitcoisas

docs: add Stackbit 1248 vertical layout screenshots and documentation

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 adds documentation screenshots and text describing a vertical layout for the Stackbit 1248 metal backup format. It also updates a simulator script used to capture those screenshots. There is no code change that affects security.