Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
51/100 average clarity
33Strong · 80–100
316Adequate · 60–79
513Thin · 40–59
191Opaque · 0–39
33security candidates with opaque commit messaging
This commit fixes a mobile UI bug where pressing Cancel on a 'building transaction' dialog accidentally closed one too many screens. The fix moves the responsibility for closing the dialog into each screen's cancel handler, and prevents er…
No security-relevant signals in the diffUI-only navigation and error-dialog suppression changesNo cryptographic, authentication, authorization, or data-handling changes
This commit is a routine merge from the project's staging branch into a feature branch. The visible code changes fix small UI/UX bugs in Stack Wallet's send screens: clearing an internal address-validation cache when the form is reset, mak…
Clearing stale address-provider state on form reset reduces the risk of stale validation data influencing a subsequent transactionFee-form caching prevents repeated network calls and accidental fee UI flicker/state races on rebuildQR scan buttons are UX additions with no visible parser/validation logic changes
This commit fixes a desktop wallet bug where the send-fee form would repeatedly re-fetch fee estimates on every screen rebuild, wasting resources and possibly flickering. It now caches the fee estimate and only retries if the previous fetc…
No security-relevant signals present in diff or commit metadataChange is a UI/UX performance and reliability improvement
This commit merges a feature branch into another work-in-progress branch. It adds QR-code scanning buttons to two desktop token send screens and resets an internal address-validation state variable when the send form is cleared. There is n…
State reset added to clearForm() to avoid stale validation dataNew QR scan entry points in token send flows (UI feature, not a vulnerability signal)
This change fixes a UI state bug in the cryptocurrency wallet's send form. When a user clears the send form, the app now also resets whether the entered address is considered valid. Without this fix, the form could incorrectly keep showing…
UI state desynchronization between form field and validity indicatorPotential user confusion from stale valid-address stateNo input validation, cryptographic, or network-layer changes
This commit adds a QR code scanner button to two desktop cryptocurrency send forms. It is a straightforward user-interface feature addition with no apparent security relevance.
This commit adds a missing QR code scan button to two desktop token send screens in the Stack Wallet app. It is a straightforward user-interface fix that restores a feature already present on mobile and other send views; there is no indica…
This commit is purely a code-formatting cleanup. It changes line breaks and indentation in four user-interface files so the code is easier to read, but it does not change what the app actually does. There is no security relevance.
This commit fixes a UI bug in the desktop version of Stack Wallet where the send amount could be lost while the app was trying to estimate transaction fees. The fix keeps the amount 'alive' in memory so fee estimation does not accidentally…
State lifecycle issue in UI provider could lead to loss of user inputFix prevents fee estimation from silently resetting send amount to zeroNo cryptographic, authentication, or network security changes present
This commit updates the Stack Wallet app so that when a single payment is broken into multiple cryptocurrency transactions, the user sees a clear warning on the confirmation screen. It also changes the app's internal record-keeping to hand…
UI now warns users when a payment will be split into multiple on-chain transactionsInternal transaction model changed from single txid to list of txidsMultiple confirmation flows updated to iterate over all txids for notes and trade lookups
This commit fixes a performance bug in the desktop version of Stack Wallet where the app repeatedly re-fetched Bitcoin-style fee rates every time the on-screen fee form rebuilt. The change caches the fee result and only fetches again if th…
Unnecessary repeated network requests reducedFuture result cached to avoid re-execution on widget rebuildError path clears cache to allow retry
This commit fixes a UI state bug in Stack Wallet's send form. When a user clears the send form, the wallet now also resets whether the entered address is considered valid. Without this fix, the form could incorrectly keep showing an old ad…
Stale UI state after form resetAddress validity not synchronized with address field resetPotential UI confusion leading to incorrect send confirmation
This is a large feature/fix merge that restores and rewrites the Xelis (XEL) cryptocurrency integration in Stack Wallet. It swaps the old hand-rolled Xelis code for a new generated native interface (XWF), adds wallet restore/backup support…
Send-flow lifecycle hardening: prepared Xelis transactions are now discarded via cancelSend when the user cancels or the widget is disposedSession-generation checks prevent stale wallet handles from being used after close/reopenMutex serialization added around send preparation, balance, history, and rescan operations
This commit is a large merge that mainly adds integration tests for a desktop 'forgot password' reset feature and makes supporting code changes to safely shut down background database workers during that reset. It also removes a large set …
New integration tests exercise a destructive 'forgot password' data-wipe featureTests assert that password store and wallet key store are deleted on successful resetTests assert that wallet files are deleted while backup and tor state are preserved
This commit lets users type multi-line notes when editing transaction and trade notes, and fixes the desktop layout so long notes scroll instead of breaking the screen. It also swaps the old `mounted` check for the newer `context.mounted` …
This commit is a large merge that mainly removes old integration tests and adds new desktop 'forgot password' reset tests. It also adds a safe-shutdown path for background Firo cache workers and databases. The changes look like defensive h…
Added safe shutdown of Firo cache isolates/SQLite databases before reset exitNew integration tests verify desktop forgot-password reset deletes secrets and preserves backupsTest harness intercepts exit() and IOOverrides to observe reset side effects
This commit fixes the desktop "forgot password" reset flow in Stack Wallet. It adds integration tests that verify the app can securely wipe its own data when a user forgets the desktop password, and it updates the Firo cache worker to clos…
Desktop password reset now closes Firo cache workers and SQLite databases before deleting app data, reducing the risk of data leakage or corruption during wipeNew integration tests assert that a successful reset removes password store (hive/desktopdata.hive), wallet key store (isar/desktopStore.isar), and wallet files while preserving backups and tor stateFailed reset scenario leaves a .reset-pending marker and removes password/key stores first, preventing the reset from being undone after partial deletion
This commit is a large merge that mainly adds a new 'prove you own a Spark address' feature to the Stack Wallet app, plus some related fixes. It also updates a dependency that handles SOCKS5 proxy connections and changes how the app decide…
New cryptographic signing path added: SparkInterface.signMessage now delegates to Spark ownership proof creation using the wallet's private key and spark derivation path.Ownership proof code rejects view-only wallets and blank messages, and searches a 100-address lookahead for the requested address before signing.Dependency upgrade: socks5_proxy 1.0.3+dev.3 -> 2.1.1, which may change SOCKS5/Tor proxy behavior; a new test verifies hostname/onion routing through a fake SOCKS server.
This commit adds a new feature to Stack Wallet that lets users prove they own a Spark (privacy) address by generating a cryptographic ownership proof. It also improves the sign/verify screens so view-only wallets can still verify proofs, a…
New cryptographic proof generation using private key material (privateKeyHex, spendKeyIndex, diversifier) inside an isolateView-only wallet guard added for proof creation (throws if isViewOnly)Message whitespace now preserved for pasted/typed challenge messages, preventing proof/verification mismatches caused by silent trimming
This commit merges several changes into a development branch. The most notable security-relevant change is a fix for how the Trocador exchange service routes traffic: it now automatically uses Tor (an anonymity network) when the user has T…
Trocador exchange API previously forced clearnet (`isOnion: false`) at every call site, bypassing Tor even when enabledNew `_useTor` getter centralizes Tor routing decision based on app feature flag and user preferenceOnion service address rotated to a new v3 .onion hostname
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
AI review queuedfeat: add epicbox server management uiby sneurlax · fd2df8fd · Feb 3, 2026 · 6 filesMessage 57 · ThinInformational 19Details
Commit message · sneurlax
feat: add epicbox server management ui
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100
This commit adds a new user-interface feature for managing 'Epic Box' servers in the Stack Wallet desktop app. It lets users add, edit, test, and connect to custom Epic Cash (EPIC) relay servers. The change is a feature addition, not a documented security fix. There are no obvious remote-code-execution or data-theft bugs visible in the diff, but it does introduce network calls to user-supplied hosts and stores custom server entries, which could in principle be abused by a malicious server or a social-engineering attack if input validation or TLS handling elsewhere is weak.
Lower-priorityfeat: use epicbox.epiccash.com as default epicbox serverby sneurlax · 87f37167 · Feb 3, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax
feat: use epicbox.epiccash.com as default epicbox server
and format the rest
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix: set default epicbox as primary on first launchby sneurlax · fc1a4a66 · Feb 3, 2026 · 1 fileMessage 77 · AdequateTriage 0Details
Commit message · sneurlax
fix: set default epicbox as primary on first launch
so the default shows as connected on first look (if it is)
77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Lower-priorityfeat: add epicbox server connection test utilityby sneurlax · 8a02f975 · Feb 3, 2026 · 1 fileMessage 67 · AdequateTriage 0Details
Commit message · sneurlax
feat: add epicbox server connection test utility
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
Lower-priorityfeat: add epicbox server management to node serviceby sneurlax · 79fa2bc1 · Feb 3, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax
feat: add epicbox server management to node service
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-prioritybring back epicboxes in hive boxesby julian · 433646ed · Feb 3, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · julian
bring back epicboxes in hive boxes
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedelectrumx disable acceptUnverifiedby julian · f55bc21a · Feb 2, 2026 · 2 filesMessage 35 · OpaqueModerate 66Details
Commit message · julian
electrumx disable acceptUnverified
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Moderate 66/100
This commit changes two places in a cryptocurrency wallet app where it connects to ElectrumX servers. Previously, one connection accepted unverified TLS/SSL certificates (acceptUnverified: true), which could let a malicious server impersonate a legitimate one. The patch disables that behavior (acceptUnverified: false) and also explicitly disables it in a connection-check helper. In plain terms, the wallet will now refuse to trust servers that cannot prove their identity with a valid certificate, reducing the risk of man-in-the-middle attacks.
AI review queueduse const http constructorby julian · bdb1d418 · Jan 30, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · julian
use const http constructor
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This is a tiny code-quality change that replaces a regular HTTP client instance with a constant one. It does not fix a security bug and does not change what the app does or how it connects to the internet.
AI review queuedfix db transactionby julian · 3af79fdb · Jan 30, 2026 · 1 fileMessage 28 · OpaqueLow 29Details
Commit message · julian
fix db transaction
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 29/100
This commit fixes a database cleanup routine that deletes a wallet's blockchain data (transactions, addresses, and unspent coins). Previously, the code counted records outside of the write transaction, then opened a transaction to delete them. If data changed between the count and the deletion, the loop logic could behave incorrectly. The fix moves the counts inside the same write transaction and increases the batch size from 50 to 100. There is no claim in the commit that this is a security fix, and no public references tie it to an incident.
Lower-prioritygive isar more space on windowsby julian · 69451b97 · Jan 30, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · julian
give isar more space on windows
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedat least log wallet delete errorsby julian · ab2bb49d · Jan 30, 2026 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · julian
at least log wallet delete errors
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100
This commit adds error logging when deleting a wallet fails, and makes minor code cleanups. It does not fix the underlying deletion failure or change how the app behaves when an error occurs. The user still sees the same result, but developers now get a log entry to help diagnose problems.
AI review queuedcode style/formattingby julian · e226ff32 · Jan 30, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · julian
code style/formatting
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is purely a code-style and formatting cleanup. It extracts two long user-facing text strings into named constants and adjusts indentation to match the project's formatting rules. There is no change to app behavior, security logic, or user-visible wording.
AI review queuedfix state errorby julian · 46efac2c · Jan 30, 2026 · 1 fileMessage 28 · OpaqueInformational 16Details
Commit message · julian
fix state error
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 16/100
This is a small UI stability fix in a Dart/Flutter transaction list screen. It checks whether the widget is still on screen before calling setState after an asynchronous data update, preventing a common Flutter runtime error when a user navigates away before the update arrives. There is no indication this affects funds, keys, network traffic, or app permissions.
AI review queuedoptimise spark spendsby Julian · 316e6273 · Jan 30, 2026 · 1 fileMessage 28 · OpaqueLow 28Details
Commit message · Julian
optimise spark spends
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 28/100
This commit optimizes how the wallet prepares private Spark coin spends. It adds a check that throws an error if no spendable coins exist, and it changes the code to only fetch data for the specific coin groups the user actually owns, rather than scanning every group ID from 1 up to the latest one. This is a performance and robustness improvement, not a clear security fix, though it may reduce exposure to certain failure modes.
AI review queuedfix spark isolate initby julian · 4faa2624 · Jan 27, 2026 · 1 fileMessage 28 · OpaqueLow 29Details
Commit message · julian
fix spark isolate init
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 29/100
This commit fixes a race condition in how a background worker (called an 'isolate') for the Spark privacy feature is initialized. Previously, if two parts of the app tried to start the isolate at nearly the same time, both could try to create it, which could waste resources, cause errors, or leave the wallet in an inconsistent state. The fix uses a one-time 'Completer' so that any concurrent callers wait for the first initialization to finish instead of spawning duplicate isolates.
AI review queuedfix epic gecko nameby julian · e0413aa2 · Jan 27, 2026 · 1 fileMessage 28 · OpaqueInformational 19Details
Commit message · julian
fix epic gecko name
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 19/100
This commit fixes a lookup in the Stack Wallet app so it can find the Epic Cash cryptocurrency when its display name is 'Epic Private Internet Cash'. Without this change, the app might fail to recognize or handle Epic Cash correctly when that specific name is used. There is no direct evidence this is a security vulnerability.
AI review queuedadd option to choose between spark and transparent addresses during swap when selecting choose from stack to fill in an addressby julian · 6e981ef0 · Jan 27, 2026 · 9 filesMessage 50 · ThinInformational 19Details
Commit message · julian
add option to choose between spark and transparent addresses during swap when selecting choose from stack to fill in an address
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100
This commit updates the wallet's exchange and buy flows so that when a user picks one of their own wallets to receive a swap, they can now choose between a private 'Spark' address and a regular 'Transparent' address for Firo. Previously the app only offered one default address type. The change is a user-facing feature improvement, not a security fix, and the diff does not show any vulnerability being patched.
Lower-priorityadd extra safeguards to catch unexpected wizardswap api responses and log them betterby julian · 34bb5b92 · Jan 27, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · julian
add extra safeguards to catch unexpected wizardswap api responses and log them better
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Security candidatefix firo getAddressType to account for spark addressesby julian · 9e3763a3 · Jan 27, 2026 · 1 fileMessage 50 · ThinLow 35Details
Commit message · julian
fix firo getAddressType to account for spark addresses
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Low 35/100
This commit fixes how Stack Wallet classifies Firo Spark addresses. Before the fix, the wallet likely treated Spark addresses as a different, possibly unsupported address type because it didn't have a dedicated check. The fix adds a method that first checks if an address is a Spark address and, if so, returns the correct type; otherwise it falls back to the existing logic. This is a correctness fix that could prevent user-facing errors or misrouting of transactions involving Spark addresses.
AI review queuedenable firo masternodes uiby julian · 824795ae · Jan 26, 2026 · 2 filesMessage 35 · OpaqueInformational 17Details
Commit message · julian
enable firo masternodes ui
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 17/100
This commit simply turns on an existing user-interface menu option for Firo masternodes in the Stack Wallet app. It uncomments two previously disabled UI blocks so that Firo wallet users can navigate to the masternodes screen. There is no code change to security logic, cryptography, networking, or data handling in the diff itself.
AI review queuedFix IP and port serialization in Firo masternode transactions.by cassandras-lies · d3eb10a3 · Jan 26, 2026 · 1 fileMessage 50 · ThinModerate 56Details
Commit message · cassandras-lies
Fix IP and port serialization in Firo masternode transactions.
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 56/100
This commit fixes how IP addresses and port numbers are packed into Firo masternode registration transactions in the Stack Wallet mobile/desktop wallet. The previous code reversed the IP octets and used little-endian byte order for the port, which would produce an incorrectly formatted network message. The patch now keeps IP octets in normal order and writes the port in network (big-endian) byte order, matching standard Firo protocol expectations. It also rejects port 0 as invalid. A wallet using the old code would likely create masternode transactions that other Firo nodes could not correctly interpret, leading to registration failures or misdirected masternode announcements.
AI review queuedthis shouldn't affect anything too negativelyby julian · e8cb0218 · Jan 24, 2026 · 1 fileMessage 45 · ThinLow 30Details
Commit message · julian
this shouldn't affect anything too negatively
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 30/100
This small change adds a safety check before updating Epic Cash wallet configuration. Previously, the app would try to update configuration even if the wallet object didn't exist, which could cause a crash. Now it skips the update if the wallet is missing. This is a defensive bug-fix that likely prevents a runtime error rather than a security vulnerability.
Lower-priorityfix initialization errors on sendviewby Julian · 09a7f05f · Jan 24, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Julian
fix initialization errors on sendview
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
defensive validationcryptography-sensitive pathsigning or wallet path
AI analysis · Low 41/100
This commit replaces a very weak Epic Cash address check with a proper synchronous validation call. Previously, the app considered any string containing an '@' symbol to be a valid Epicbox address, and any non-empty string longer than 10 characters to be valid otherwise. That could have allowed users to send funds to malformed or attacker-controlled addresses. The patch now delegates validation to the underlying Epic Cash library, which should reject invalid addresses correctly.