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
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 15/100
This commit is a routine user-interface refactor for the Stack Wallet desktop app. It moves the existing ShopInBit service page into a new container so the app can show both 'Services' and 'Gift Cards' tabs. No security-sensitive logic was added or changed; the code that opens web links and starts shopping dialogs is copied unchanged into a new file.
fix(shopinbit): ShopInBit confirm/send navigation and display fixes
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
authentication path
AI analysis · Informational 16/100
This commit fixes two user-interface bugs in the Stack Wallet app's ShopInBit payment flow. First, it prevents the app from crashing or showing a confusing error dialog if the user navigates away while a transaction is being broadcast. Second, it correctly displays the token symbol (for example, a stablecoin ticker) on the desktop send-confirmation screen. There is no indication these changes address a security vulnerability.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 24/100
This commit fixes the ShopInBit payment feature so it can correctly pay with USDT (an Ethereum token) instead of only supporting Bitcoin and Monero. It also adds a 'check for payment' button when the user has no compatible wallet, and makes several UI labels and navigation fixes. There is no clear security vulnerability in the diff; it is a feature/bug-fix patch.
fix: remove tokenTicker param from DesktopAuthSend call
and use ticker symbol
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
signing or wallet pathauthentication path
AI analysis · Informational 16/100
This commit changes a desktop cryptocurrency wallet's send confirmation dialog so it can display a custom token ticker (for tokens built on a coin) instead of always showing the base coin's ticker. The title says it removes a tokenTicker parameter, but the code actually adds one. The change is mostly a UI label fix and does not appear to alter how transactions are authorized, signed, or sent.
fix(shopinbit): don't pass auth for countries endpoint
67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Low 35/100
This commit changes the Stack Wallet app so that when it fetches the list of supported countries from the ShopInBit service, it no longer sends the user's authentication token with the request. It also tidies up how login credentials are formatted before being sent. The main security-relevant change is removing unnecessary authentication from a public metadata endpoint, which reduces the risk that the user's token could be leaked or logged if that endpoint is compromised or misbehaves.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 18/100
This commit adds a new settings page for a third-party shopping feature called ShopInBit. It lets users generate, view, copy, and restore a 'customer key' used to identify them to the ShopInBit service. The change is mostly user-interface wiring and does not, on its own, appear to fix or introduce a security vulnerability. It does surface a sensitive-looking key in the UI and allows it to be copied to the system clipboard, which could matter if the key is later shown to be a secret, but the commit itself does not change how that key is stored or generated.
Lower-priorityfeat(shopinbit): add Services main menu item on desktopby sneurlax · 5b1c8e5b · Apr 6, 2026 · 3 filesMessage 62 · AdequateTriage 0Details
Commit message · sneurlax
feat(shopinbit): add Services main menu item on desktop
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedfeat(shopinbit): add ShopInBit More menu item on mobileby sneurlax · 0582da4a · Apr 6, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · sneurlax
feat(shopinbit): add ShopInBit More menu item on mobile
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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit simply adds a new 'Services' menu item to the bottom navigation bar in the mobile wallet view. It lets users open an existing screen called ServicesView. There is no security-relevant change in the code shown.
feat(shopinbit): add ShopInBit payment and send-from views
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
authentication path
AI analysis · Informational 20/100
This commit adds two new screens that let a user pay a ShopInBit invoice from inside the Stack Wallet app. It fetches payment details from ShopInBit, shows a QR code and address, and can start a wallet-to-address send for BTC or XMR. There is no obvious malicious code, but the new code trusts a third-party API and URIs/addresses supplied by it, and contains a small hard-coded test fallback that could send real money if the sandbox flag were misused.
feat(shopinbit): add ShopInBit debug tools to hidden settings
feat(shopinbit): remove ShopInBit customer key functionality from hidden settings
because it's exposed to users now
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
feat(shopinbit): better ShopInBit settings page on mobile
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
authentication path
AI analysis · Informational 15/100
This commit is a routine user-interface improvement for the ShopInBit settings page in the Stack Wallet app. It adds a settings gear icon on mobile, a settings button on desktop, and restyles the warning dialogs that remind users to save their customer key before changing it. There is no security-relevant change in behavior.
✓ 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 deletes the pubspec.lock file, which is Dart/Flutter's record of exact dependency versions used to build the app. Removing it does not change any application code or fix a security bug. It is a routine project-maintenance change, though it means future builds will resolve dependency versions from pubspec.yaml rather than using pinned versions.
feat: allow toast clickthru: replace route-based toast w passive Overlay
before, the toast would invisibly block now you can click thru it
to test: create a new wallet and copy the seed. the toast blocks the back button button until it's dismissed
95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI review queuedfeat(paynym): add isTaproot param to getPaymentCode and enable on claimby sneurlax · c648781b · Apr 6, 2026 · 2 filesMessage 62 · AdequateInformational 20Details
Commit message · sneurlax
feat(paynym): add isTaproot param to getPaymentCode and enable on claim
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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100
This commit updates the Paynym (BIP47 reusable payment code) claim flow in Stack Wallet so that newly claimed payment codes advertise both SegWit and Taproot support. Previously the claim screen requested a non-SegWit payment code; now it requests a code with both feature bits set. The wallet's payment-code generator also gains a new optional `isTaproot` flag. This is a feature/correctness change rather than a clear security fix, but enabling the right address-type flags can affect which addresses are derived when other wallets pay you, so it has mild security/reliability relevance.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
feat(paynym): infer taproot capability from payment code feature byte
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedTODO: merge https://github.com/cypherstack/bip47/pull/9 and update to mainby sneurlax · 783dbded · Apr 6, 2026 · 1 fileMessage 38 · OpaqueLow 25Details
Commit message · sneurlax
TODO: merge https://github.com/cypherstack/bip47/pull/9 and update to main
38/100 · OpaqueMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
second-pass: opaque commit message
AI analysis · Low 25/100
This commit changes a dependency reference in a build template from the project's official BIP47 repository to a personal fork owned by a user named 'sneurlax'. The commit message says this is a temporary TODO step to merge a pull request. On its own, this is a supply-chain risk signal: it points the build to code outside the project's normal trusted source, but the diff does not show what changed in that fork or whether the fork contains malicious or vulnerable code.
feat(paynym): add P2TR (taproot) payment address support
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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100
This commit adds support for Bitcoin Taproot (P2TR) addresses to the Paynym feature in Stack Wallet. Paynyms are reusable payment codes that let users receive payments without sharing a new address each time. The change extends the existing support for legacy and SegWit addresses to also handle Taproot addresses, and refactors the code to choose address types more cleanly. There is no indication in the commit that this fixes a security vulnerability.
fix(paynym): handle taproot inputs in notification tx parsing/building
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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 44/100
This commit fixes how Stack Wallet handles Bitcoin PayNym notification transactions when the wallet has taproot-style coins. PayNym notification transactions need the sender's raw public key to set up a private payment channel. Taproot inputs hide that raw public key, so the previous code could crash or fail to parse/build notifications when taproot coins were selected. The fix avoids picking taproot coins for notification transactions and gracefully returns null instead of crashing when a taproot input is encountered during parsing.
fix(paynym): navigate to PaynymHomeView when nym already claimed
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(paynym): handle 401 and empty body in claim() responseby sneurlax · e28f7695 · Apr 6, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax
fix(paynym): handle 401 and empty body in claim() response
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedfix(desktop): Show Create Masternode page as dialogby narekgeghamyan0 · 1480494c · Mar 31, 2026 · 1 fileMessage 62 · AdequateInformational 19Details
Commit message · narekgeghamyan0
fix(desktop): Show Create Masternode page as dialog
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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100
This commit changes how the 'Create Masternode' screen appears on desktop computers. Previously it was pushed as a full page after confirming a transaction; now it is shown as a popup dialog on desktop, while mobile behavior stays the same. It also adds a safety check that the screen context is still valid before showing the dialog. There is no clear security problem here—this looks like a normal user-interface fix.
Lower-prioritydocs: update docs re: new lld dep since flutter 3.38by sneurlax · 2b9ca8cf · Mar 24, 2026 · 1 fileMessage 89 · StrongTriage 0Details
Commit message · sneurlax
docs: update docs re: new lld dep since flutter 3.38
it's in fix/particl because this is what i'm fixing right now so it's relevant kind of
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