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
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 16/100
This commit swaps the source of the Mimblewimblecoin (MWC) library used inside Stack Wallet. It replaces a direct import of an external Flutter package called flutter_libmwc with a project-specific wrapper interface named libmwc_interface. The actual address-validation logic still calls the same validateSendAddress function, just through the new wrapper. There is no obvious security bug being fixed here; it looks like a routine code reorganization to make the wallet use an internal abstraction layer instead of a third-party package directly.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 16/100
This commit refactors how the Epic Cash cryptocurrency support is wired into the Stack Wallet app. Instead of importing the Epic Cash library directly everywhere, the code now uses a generated interface that can be turned on or off at build time. The visible changes are mostly code reorganization and formatting; there is no obvious new security vulnerability introduced, but the patch is incomplete because the generated implementation file is only a template and the real generated file is not shown.
AI review queuedmwc git versionby julian · fef43fb0 · Oct 6, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · julian
mwc git version
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit is a routine code refactor for how the app retrieves the version string of the Mimblewimble Coin (MWC) library. It moves the version lookup behind a generated interface so the app can check the plugin version consistently whether or not MWC support is enabled. There is no visible security relevance.
Security candidateimplement sal ffi package optional import and some xmr/wow fixesby julian · be92e869 · Oct 6, 2025 · 13 filesMessage 50 · ThinLow 28Details
Commit message · julian
implement sal ffi package optional import and some xmr/wow fixes
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 28/100
This commit is mostly a large internal refactor that swaps direct calls to the cs_monero and cs_salvium libraries for a new generated interface layer. It also adds Salvium wallet support and fixes some restore-height logic. There is no obvious malicious code, but the change touches sensitive wallet code (keys, addresses, transaction creation, balance queries) and introduces a new abstraction layer whose generated implementation is only partially shown. A few spots look like real bug fixes or hardening (for example, checking whether a wallet instance exists before overwriting it during restore), while other spots move security-critical operations behind a new interface that reviewers cannot fully inspect from this diff alone.
AI review queuedclean switchby julian · 6b5966c5 · Oct 6, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · julian
clean switch
18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit is a minor code cleanup in a Dart template file used to generate wallet code. It removes redundant assignments inside a switch expression, making the code shorter and clearer. There is no visible change in behavior, no security fix, and no indication of a vulnerability.
✓ 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 46/100
This commit fixes a bug where a user-specified custom fee amount was not being passed along when building Mimblewimble (MWEB) transactions in the Stack Wallet app. Without the fix, the wallet could ignore the user's fee choice and use a default or calculated fee instead, potentially leading to unexpected transaction costs or failed transactions.
✓ 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 33/100
This commit refactors how Stack Wallet imports the Monero/Wownero foreign-function-interface (FFI) package. Instead of directly importing the cs_monero library everywhere, the app now routes those calls through a generated interface file. The change is mostly an architectural cleanup to make the FFI package optional/importable on demand. There is no obvious security bug in the diff, but because the patch is large and partially reformats code, it is hard to fully verify that no sensitive behavior changed.
Security candidateMerge branch 'staging' into docsby julian-CStack · 153aa958 · Oct 3, 2025 · 1973 filesMessage 45 · ThinInformational 15Details
Commit message · julian-CStack
Merge branch 'staging' into docs
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet pathboot or update pathauthentication pathmerge-commit duplicate discount
AI analysis · Informational 15/100
This commit is a large merge from the 'staging' branch into the 'docs' branch for the Stack Wallet project. It adds many files including issue templates, a CI workflow, project configuration, assets (icons, themes, animations), and a large amount of Dart source code. There is no indication in the commit message or diff that this is a security patch or that it addresses any vulnerability. It appears to be a routine code/documentation synchronization or initial import.
AI review queuedprep config scripts fixesby julian · 6ad4811e · Oct 2, 2025 · 2 filesMessage 35 · OpaqueInformational 12Details
Commit message · julian
prep config scripts fixes
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 12/100
This commit fixes formatting in a build configuration template and tightens the script that enables optional cryptocurrency features. It changes how the script recognizes marker comments so it only matches exact lines, not partial ones, and removes an unused helper function. There is no indication this is a security fix or that it addresses any vulnerability.
AI review queuedprep config scriptsby julian · a7861184 · Oct 2, 2025 · 3 filesMessage 28 · OpaqueInformational 17Details
Commit message · julian
prep config scripts
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 17/100
This commit updates build configuration scripts for two app variants (Campfire and Stack Duo) and restructures a shared template that lists software dependencies. It wraps optional cryptocurrency and privacy features (such as Firo, Xelis, Epic Cash, Tor, Monero, Salvium, and Mimblewimble) in conditional placeholders so each app variant can enable only the components it needs. There is no direct evidence in the commit of a security vulnerability or malicious change; it appears to be a build-system cleanup.
AI review queuedWIPby julian · 93ff3407 · Oct 2, 2025 · 9 filesMessage 0 · OpaqueInformational 11Details
Commit message · julian
WIP
0/100 · OpaqueMessage clarity
! Generic or placeholder subject! Too few words to establish purpose! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 11/100
This commit is a work-in-progress refactor that changes how the Mimblewimblecoin (MWC) wallet code talks to its underlying library. Instead of calling the library directly, it introduces a generated interface layer so the same wallet code can work whether or not the MWC feature is enabled at build time. There is no obvious security bug in the diff itself; it is a build-time feature-toggle and code-organization change.
AI review queuedrename pubspec template fileby julian · 8855e5a6 · Oct 2, 2025 · 2 filesMessage 35 · OpaqueInformational 15Details
Commit message · julian
rename pubspec template file
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 commit simply renames a build template file from 'pubspec.template' to 'pubspec.template.yaml' and updates the build script that references it. The file contents are unchanged. There is no security relevance.
AI review queuedupdate xelis libby julian · ac2e84ca · Oct 2, 2025 · 2 filesMessage 28 · OpaqueLow 25Details
Commit message · julian
update xelis lib
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 25/100
This commit changes the Stack Wallet app to download a cryptocurrency library (xelis_flutter) from a different GitHub account and a specific commit hash instead of a numbered release version. On its own, this is a routine dependency update, but it also introduces supply-chain risk: the app now trusts code from a fork controlled by the Stack Wallet team rather than the original xelis-project repository, and it pins an exact commit rather than a tagged release. There is no evidence in the commit that this fixes a known security bug or that the change itself is malicious.
AI review queuedupdate tor libby julian · fbbb108d · Oct 2, 2025 · 3 filesMessage 28 · OpaqueLow 25Details
Commit message · julian
update tor lib
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 25/100
This commit updates the Tor networking library used by Stack Wallet to a newer version. The change itself only swaps one pinned code reference for another and adds a Kotlin build directory to the ignore list. There is no direct evidence in the commit that this fixes a security vulnerability, but updating a privacy-critical networking component like Tor is commonly done to pick up bug or security fixes in the upstream library.
AI review queuedupdate mwebd libby julian · 639082bb · Oct 2, 2025 · 2 filesMessage 28 · OpaqueLow 25Details
Commit message · julian
update mwebd lib
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 25/100
This commit simply bumps the version of a third-party library called flutter_mwebd from an early pre-release version (0.0.1-pre.7) to the next pre-release version (0.0.1-pre.8). The commit message gives no reason for the update, and the diff shows only version number and package hash changes. There is no direct evidence in the commit that this fixes a security flaw, but updating a pre-release library can sometimes include bug or security fixes.
AI review queuedupdate coinlibby julian · fdf9b5cd · Oct 2, 2025 · 2 filesMessage 18 · OpaqueInformational 3Details
Commit message · julian
update coinlib
18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 3/100
This commit only changes which version (commit reference) of an external library called coinlib Stack Wallet uses. The actual code changes are in the separate coinlib repository, not shown here. Without seeing what changed inside coinlib, we cannot tell whether this update fixes a security issue, adds a feature, or is just routine maintenance.
AI review queuedupdate libsparkmobileby julian · e86d4fd0 · Oct 2, 2025 · 2 filesMessage 18 · OpaqueInformational 6Details
Commit message · julian
update libsparkmobile
18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 6/100
This commit only updates a reference to an external library (libsparkmobile) used by the Stack Wallet app. The change itself does not show any security issue in the Stack Wallet code, nor does it explain why the library was updated. Without seeing what changed inside the external library, we cannot tell whether this update fixes a security problem, adds a feature, or is routine maintenance.
AI review queuedget android buildingby julian · 8f13100f · Oct 2, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · julian
get android building
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit updates build configuration files to make the Android version compile. It bumps the Kotlin plugin version and switches to a newer version of an internal Monero compatibility library. There is nothing in the changes that directly affects user security or introduces a known vulnerability.
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Informational 0/100
The commit message only says 'update frostdart' and the actual code diff is unavailable. There is no visible information indicating what changed, whether it fixes a security issue, or whether it introduces any risk. Without the diff, no meaningful security assessment can be made.
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing or wallet pathauthentication path
AI analysis · Informational 15/100
This commit is a large automated regeneration of generated Dart files (code produced by build tools like Drift, Isar, Hive, and Mockito). The visible changes are purely formatting and code-style updates produced by newer generator versions, with no hand-written logic changes. There is no indication of a security fix or vulnerability being addressed.
AI review queuedupdate hive => hive_ceby julian · 27547a29 · Oct 2, 2025 · 29 filesMessage 28 · OpaqueLow 31Details
Commit message · julian
update hive => hive_ce
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
This commit swaps the app's local database library from the original 'hive' package to a community-maintained fork called 'hive_ce' (Community Edition). Most changes are mechanical import renames and formatting. There is no direct evidence in the commit that this fixes a specific security vulnerability, but replacing an unmaintained dependency with a maintained fork can reduce long-term security risk. The commit does not describe any security issue or credit a researcher.
Security candidateupdate flutter and isar (and various other required deps)by julian · d9cd7193 · Oct 2, 2025 · 137 filesMessage 50 · ThinLow 25Details
Commit message · julian
update flutter and isar (and various other required deps)
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 25/100
This is a large routine maintenance commit that updates the app's Flutter framework and switches the local database library from the original 'isar' package to the community-maintained 'isar_community' fork. Most visible changes are automatic import renames and code formatting. There is no direct evidence in the commit of a security vulnerability being fixed or introduced, but any database-layer migration in a wallet app can affect how keys, transaction data, and backups are stored. The change should be reviewed for compatibility and data-integrity risks rather than treated as a security patch.
AI review queuedupdate ios gitignoreby julian · 2896c7a3 · Oct 2, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · julian
update ios gitignore
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit simply updates the iOS project's .gitignore file to exclude two additional build-related files and folders from version control. It is a routine housekeeping change with no security relevance.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Moderate 54/100
This commit appears to remove or silence a debug print statement that was outputting a wallet's secret seed phrase (mnemonic) in the MWC cryptocurrency plugin. A seed phrase is the master key to a wallet; printing it to logs or console could let anyone with access to those logs steal funds. The actual code change is in a submodule (crypto_plugins/flutter_libmwc), so the exact fix is not visible in the main repository diff.