SS
← All projectsSeedSigner

SeedSigner

Stateless, air-gapped Bitcoin signing software for Raspberry Pi hardware.

BitcoinHardware walletsNormal
Repository coverage

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

134security candidates25second-pass queue118AI analyses
8commits · 30 days
8commits · 60 days
37commits · 180 days
187commits · 365 days
Backfill bands
Aug 5 → Feb 6150 seen8 candidatesComplete
Feb 6 → Jun 629 seen0 candidatesComplete
Jun 6 → Jul 60 seen0 candidatesComplete
Jul 6 → Aug 57 seen1 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.

44/100 average clarity
4Strong · 80–100
30Adequate · 60–79
89Thin · 40–59
64Opaque · 0–39
42security 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.
kdmukai1177975039
okaybro171413063
Nick Klockenga14134061
PROWLERx1510108020
alvroble1277055
FazleRabbbiferdaus172866061
biel411037
Advait111060
Kshitij111033
securesigner111050
S1DDHEY111045
newtonick100045
Analysis record

Published AI watches

Last scanned 1 minute ago

Low 43 AI analysisMessage 77 · Adequate
SS SeedSignerSeedSigner BitcoinHardware wallets

fix: replace removed `get_seed` call in `PSBTSelectSeedView`

This commit fixes a bug where selecting an existing seed during PSBT signing would crash because the code called a method (`get_seed`) that no longer exists. The fix uses the already-loaded list of seeds directly. The crash is a reliabilit…

Fixes a runtime exception (AttributeError) in a signing workflowPrevents workflow failure when user selects an existing seed for PSBT signingAdds regression test covering the previously broken code path
442b7a1aby okaybro+13−12 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

refactor: use `Seed` instead of `seed_num`

This commit is a straightforward internal code cleanup: it replaces the use of numeric seed indexes (seed_num) with direct references to Seed objects throughout the user interface and tests. There is no security-relevant change; it is pure…

65e312c9by okaybro+238−2698 files
No security note in commit
Informational 23 AI analysisMessage 45 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

Minor bugfix to correct if/else path

This commit fixes a small logic bug in SeedSigner, a hardware-wallet-like signing device. The code was checking whether a seed's fingerprint string was empty, but it should have been checking whether the seed has a passphrase. The bug coul…

Logic bug in seed finalization flowIncorrect fingerprint display conditionPotential user confusion during seed setup
c52577a9by kdmukai+3−21 file
No security note in commit
Informational 15 AI analysisMessage 0 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

changessss

This commit only updates a test file. It rewrites comments and adds two assertions to verify that backing out of seed word entry leaves the first word saved and clears the second word. There is no change to the actual application code that…

6ddc7a99by PROWLERx15+9−61 file
No security note in commit
Informational 15 AI analysisMessage 0 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

fix comment

This commit only fixes the indentation of a comment line so it is properly formatted as a code comment. No executable code, logic, or behavior was changed.

cf37ac2aby PROWLERx15+2−21 file
No security note in commit
Informational 15 AI analysisMessage 33 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

update comment

This commit only rewrites an inline code comment to describe the same back-button behavior more clearly. No actual code logic, function calls, or data handling changed.

94485e52by Kshitij+4−41 file
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

refactor 12/24 word tests into a single test

This commit is a simple cleanup of automated tests. It merges two nearly identical test cases (one for 12-word seeds and one for 24-word seeds) into a single test that loops over both seed types. No production code was changed, and there i…

60cb1376by PROWLERx15+11−231 file
No security note in commit
Informational 15 AI analysisMessage 35 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

added comment explaining changes

This commit only adds a clarifying comment to existing code. It does not change any program behavior, fix a bug, or alter security logic. The comment explains that pressing the back button during seed phrase entry can mean either aborting …

d0b729a5by PROWLERx15+4−11 file
No security note in commit
Low 34 AI analysisMessage 35 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

update conditional branch

This commit changes how the back button behaves during two seed-related screens. In the first screen, it simplifies the logic so that the pending mnemonic is only discarded when leaving from the first word. In the second screen, it removes…

Back-button control flow altered in seed creation UIPending mnemonic discard logic narrowed to first-word exit onlyRemoval of back-button guard before button_data indexing in finalize view
ef7d3716by PROWLERx15+3−71 file
No security note in commit
Informational 19 AI analysisMessage 28 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

fix back navigation

This commit fixes two minor user-interface navigation bugs in a Bitcoin seed-signer device app. In one screen, pressing the hardware back button after entering a mnemonic incorrectly dumped the user at the main menu instead of going back. …

No security-relevant keywords in commit title or messageNo changes to cryptography, key handling, or authenticationChange is purely UI navigation flow
5c7dcd17by PROWLERx15+4−41 file
No security note in commit
Low 46 AI analysisMessage 45 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

replaced os.popen() with inbuilt file handling

This commit replaces a shell command used to read the Raspberry Pi CPU serial number with safer built-in Python file reading. The old code ran the command 'cat /proc/cpuinfo | grep Serial' through the operating system shell, which is gener…

Removal of os.popen shell invocationReplacement of shell pipeline with native file I/ODefensive hardening in entropy collection path
a00810caby S1DDHEY+6−41 file
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

Add missing "beta" designation for Czech

This commit simply adds the word '(beta)' to the Czech language label in the settings, matching how other unfinished translations are already labeled. It is a cosmetic/UI labeling change with no security relevance.

990686f7by kdmukai+1−11 file
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

Finalize v0.8.7 languages

This commit simply reorganizes which languages are labeled as 'beta' or 'incomplete' in the SeedSigner settings menu. It adds, removes, and re-categorizes language display names (for example moving Czech to beta and Greek to incomplete). T…

8dbaa548by kdmukai+12−101 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
SS SeedSignerSeedSigner BitcoinHardware wallets

chore: bump version to 0.8.7

This commit is a routine version bump from 0.8.6 to 0.8.7. It only changes three version-number strings in project metadata and a translation template. There is no code behavior change, no bug fix, and no security relevance visible in the …

27c8aa35by okaybro+4−43 files
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

minor comment updates

This commit only changes two source-code comments in a single GUI component file. One adds a developer TODO note about consolidating font file locations, and the other fixes a typo in an existing comment. No executable code, logic, or beha…

848fbc03by Nick Klockenga+2−11 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
SS SeedSignerSeedSigner BitcoinHardware wallets

refactor(l10n): make multisig wallet policy display translatable

This commit is a straightforward user-interface refactor that makes multisig wallet policy text translatable. It replaces hard-coded English strings like '2 of 3' with localizable template strings, adds a small helper to extract threshold …

7f7f977aby okaybro+59−66 files
No security note in commit
Informational 15 AI analysisMessage 77 · Adequate
SS SeedSignerSeedSigner BitcoinHardware wallets

fix(IOTestScreen): stop blanking out "Clear" button for the screenshot renderer

This is a tiny user-interface fix for a hardware wallet project. It changes when a button label is hidden so that screenshot/translation tools can see the word "Clear", while real devices still start with an empty button. There is no secur…

3e1f8625by okaybro+5−11 file
No security note in commit
Informational 16 AI analysisMessage 35 · Opaque
SS SeedSignerSeedSigner BitcoinHardware wallets

Improvements for SettingsQR Generator

This commit makes small, non-security improvements to how SeedSigner discovers language files and how settings are exported. It removes a script that could write a settings definition file to a microSD card, but that script only ran when a…

Removal of a standalone export script that wrote to /mnt/microsd when executed on the device hostnamePath traversal/reliability improvement: replaces cwd-based path construction with resolved pathlib pathsNo explicit security bug, CVE, or vulnerability fix present in the diff
fa111d8dby kdmukai+24−271 file
No security note in commit
Repository ledger

Explore captured commits

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

Security candidateMinor editby kdmukai · 6229f027 · Dec 20, 2025 · 1 fileMessage 0 · OpaqueInformational 17Details
Commit message · kdmukai

Minor edit

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 17/100

This is a one-line tightening of a string comparison. The code previously accepted a tag file's commit hash if it merely began with the same characters as the git reference; now it requires an exact match. This prevents a partial-prefix match from being treated as a valid tag, which could in theory cause the wrong software version tag to be displayed or selected. There is no direct evidence this is exploitable for harm, and the commit message does not describe it as a security fix.

Security candidateMatch git tag name to current commit; clean up latest src edit scanby kdmukai · 91dd5ff2 · Dec 20, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · kdmukai

Match git tag name to current commit; clean up latest src edit scan

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a minor cleanup and improvement to how the app displays its own version information. It makes the version label match an official git tag when one exists, and it tidies up a routine that checks when source files were last edited. There is no security-relevant change here.

Security candidatecomments updatesby kdmukai · 7c7ac3a6 · Dec 20, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · kdmukai

comments updates

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit only rewrites code comments and removes an early-return check that previously skipped git detection when running on the SeedSigner OS. The actual behavior of the version detection function is unchanged for the normal case, and no security-sensitive code is modified.

Security candidateFix inadvertantly persistent test artifactsby kdmukai · 85ab0fe3 · Dec 20, 2025 · 2 filesMessage 55 · ThinTriage 15Details
Commit message · kdmukai

Fix inadvertantly persistent test artifacts

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
seed or entropy path
AI review queuedCorrecting assert mistakeby biel · a1e47eb8 · Dec 19, 2025 · 1 fileMessage 35 · OpaqueTriage 0Details
Commit message · biel

Correcting assert mistake

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
Lower-priorityAdd a recognized setting for test_settingsqr_ignores_unrecognized_settingby biel · d31d819b · Dec 19, 2025 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · biel

Add a recognized setting for test_settingsqr_ignores_unrecognized_setting

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityBugfix: `Mock` persisted beyond intended test caseby kdmukai · 4a78c6f0 · Dec 18, 2025 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · kdmukai

Bugfix: `Mock` persisted beyond intended test case

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI review queuedChanging testsby biel · 02f9b8c9 · Dec 17, 2025 · 5 filesMessage 28 · OpaqueTriage 7Details
Commit message · biel

Changing tests

Change tests

Correcting tests

28/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
Security candidateEliminate Export xpub settingsby biel · 2043918d · Dec 17, 2025 · 2 filesMessage 35 · OpaqueInformational 19Details
Commit message · biel

Eliminate Export xpub settings

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 19/100

This commit removes a user-facing setting that let advanced users disable the 'Export xpub' button. After the change, the Export xpub option is always shown in the seed options menu. This is a feature simplification, not a fix for a code vulnerability. It slightly reduces user-configurable privacy controls because a user can no longer hide the xpub export entry point, but it does not introduce a new exploit or change how xpub export actually works.

Security candidateRemove last "coord" Settings referencesby kdmukai · c49f644f · Dec 16, 2025 · 4 filesMessage 45 · ThinInformational 15Details
Commit message · kdmukai

Remove last "coord" Settings references

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathparser or protocol path
AI analysis · Informational 15/100

This commit only renames internal test variables and settings strings from 'coord' to 'xpub_qr'. It is a cleanup change with no effect on the actual wallet software users run, and no security relevance.

Security candidateReplace the "coordinator" setting with "xpub_qr_type"by kdmukai · b90e3d9e · Dec 16, 2025 · 10 filesMessage 50 · ThinInformational 19Details
Commit message · kdmukai

Replace the "coordinator" setting with "xpub_qr_type"

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 19/100

This commit renames a user-facing setting from picking which Bitcoin wallet app ('coordinator') you use to picking the actual QR code format you want when exporting an extended public key (xpub). It is a settings-label and workflow refactor, not a security fix or vulnerability patch. The code still supports the same three QR formats as before (animated UR, static, and the older Specter format), just selected by format name instead of wallet name.

Security candidateLight loop refactor; improved commentsby kdmukai · 9b855c01 · Dec 16, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · kdmukai

Light loop refactor; improved comments

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a minor code cleanup in a scrolling text animation loop. It moves a brief sleep statement outside an if/else block and rewords comments. There is no security-relevant change.

Security candidateRefactor scrolling loop for better clarity; more commentsby kdmukai · e88d0e45 · Dec 16, 2025 · 1 fileMessage 50 · ThinInformational 12Details
Commit message · kdmukai

Refactor scrolling loop for better clarity; more comments

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 12/100

This commit is a code cleanup of the on-screen text-scrolling animation. It restructures the scrolling loop to make it easier to read and adds explanatory comments. The only functional tweak visible is lowering the threshold that decides when text should scroll from 2 pixels to 1 pixel. There is no indication this change fixes or introduces a security problem.

Security candidateCleanupby kdmukai · b98faa0a · Dec 16, 2025 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · kdmukai

Cleanup

0/100 · OpaqueMessage clarity
! Generic or placeholder subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a minor code cleanup in the user-interface component that handles horizontally scrolling text. It removes a leftover debug print statement and inlines a small helper function that crops and displays the scrolling text. There is no security-relevant change.

Security candidateRelocate logic for min scroll thresholdby kdmukai · fec9fb43 · Dec 16, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · kdmukai

Relocate logic for min scroll threshold

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a minor user-interface cleanup. It moves a small piece of logic that decides when text is wide enough to start scrolling from one place in the code to another, and adds a debug print statement. There is no security relevance.

Security candidateEliminate unnecessary scrolling for short textby kdmukai · e3c6b639 · Dec 16, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · kdmukai

Eliminate unnecessary scrolling for short text

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a minor user-interface polish change. It stops text from twitching left and right when only a tiny amount of scrolling would be needed. There is no security relevance visible in the code or commit message.

Security candidateRemove sleeps that cause delays exiting threadby kdmukai · 68de9fff · Dec 15, 2025 · 1 fileMessage 45 · ThinInformational 12Details
Commit message · kdmukai

Remove sleeps that cause delays exiting thread

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 12/100

This commit refactors how a scrolling text display pauses at the start and end of a line. Previously the code simply slept (paused) the entire thread, which made it slow to respond when the user wanted to stop scrolling. The new code tracks pause timing with variables and checks them in the main loop, so the thread can exit promptly when asked. There is no security issue visible in this change.

Security candidatestyle: fix typos in source code comments and stringsby securesigner · d5729358 · Dec 14, 2025 · 4 filesMessage 50 · ThinInformational 15Details
Commit message · securesigner

style: fix typos in source code comments and strings

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit only fixes spelling mistakes in comments and log messages. No actual program code, behavior, or security controls were changed.

Security candidateInitial Hindi supportby kdmukai · 1769938c · Dec 14, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · kdmukai

Initial Hindi support

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit adds Hindi language support to the SeedSigner wallet interface. It registers a new Hindi font, adjusts font sizes for Hindi text, and adds Hindi to the language settings list. There is no security-relevant change.

Security candidateRemove `TextArea.allow_text_overflow`by kdmukai · 1f188754 · Dec 13, 2025 · 7 filesMessage 35 · OpaqueInformational 17Details
Commit message · kdmukai

Remove `TextArea.allow_text_overflow`

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
memory safetyseed or entropy pathsigning or wallet path
AI analysis · Informational 17/100

This commit removes a UI flag called allow_text_overflow from SeedSigner's on-screen text rendering code. Previously, the flag decided whether text that was too long should be silently allowed to spill past its box (overflow) or trigger an error. After the change, the code always allows overflow and just logs a warning. This is a code-cleanup and UI-layout change; it does not introduce a way for an attacker to steal funds or keys, but it could make some translated screens look clipped or unreadable.

Security candidateRemove now-unused `has_passphrase` attrby kdmukai · 639c2a14 · Dec 10, 2025 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · kdmukai

Remove now-unused `has_passphrase` attr

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlseed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit simply removes an unused attribute called has_passphrase from two screen classes and the two places that passed it in. There is no functional change, no bug fix, and no security relevance visible in the code change.

Security candidateRemove dead codeby kdmukai · 0736e066 · Dec 10, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · kdmukai

Remove dead code

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit simply deletes an unused helper function that could generate a seed phrase from an image. There is no security fix or vulnerability here—it's routine cleanup of leftover code.

Security candidateRemove dead codeby kdmukai · dd6277b8 · Dec 10, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · kdmukai

Remove dead code

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit removes unused code from a single screen file. One line that set a scroll position variable was never referenced anywhere, and an entire 'Powering Off' screen class was defined but apparently not used. There is no security-relevant change here—just cleanup.

Security candidateRemove dead code and debugging codeby kdmukai · 6fb11166 · Dec 10, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · kdmukai

Remove dead code and debugging code

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit removes unused variables and debugging-only code from the QR code scanning screen. There is no security-relevant change; it is purely cleanup of leftover development helpers and a counter that was no longer used.

Security candidateRemove dead codeby kdmukai · aa4b84c9 · Dec 10, 2025 · 4 filesMessage 28 · OpaqueInformational 12Details
Commit message · kdmukai

Remove dead code

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 12/100

This commit removes unused code and fixes a minor variable-name inconsistency in the user interface code. There is no apparent security relevance: it deletes an unused screen class, removes an unused loading-screen flag, drops an unused selection-button setting, and renames a throwaway variable in a font-size calculation so the code is internally consistent. None of these changes affect how private keys, seeds, or transactions are handled.