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
refactor(ui): generalized external link launch request 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
authentication path
AI analysis · Informational 17/100
This commit is a routine user-interface cleanup. It replaces several copies of the same 'Are you sure you want to open this external link?' warning dialog with one shared version. The behavior shown to the user—asking permission before opening a web link in the device's browser—does not change. There is no indication this fixes a security bug.
Security candidatefix(ui): clean up as much as possible without fully refactoringby julian · cbad601b · May 20, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · julian
fix(ui): clean up as much as possible without fully refactoring
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 purely cosmetic UI cleanup for a ticket detail screen in the Stack Wallet app. It swaps some text widgets for selectable text, adjusts padding and borders, and replaces a custom container with a reusable rounded container. There is no security-relevant change.
✓ 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 is a small UI bug fix in a Flutter settings screen. It moves an asynchronous key-loading call so it only happens while the screen widget is still active, preventing a harmless 'provider accessed after widget disposed' warning. There is no direct evidence this is 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 18/100
This commit is a user-interface cleanup for the CakePay gift-card flow on desktop. It replaces separate mobile/desktop navigation paths with a single nested navigator inside a dialog, swaps some loading indicators, and changes how order details receive their data (passing the whole order object instead of just an order ID). There is no clear security bug being fixed, and nothing in the diff suggests attackers could exploit it.
Security candidatefix(ui): adjust button width to prevent overflow on min window widthby julian · beed5b62 · May 20, 2026 · 1 fileMessage 79 · AdequateInformational 15Details
Commit message · julian
fix(ui): adjust button width to prevent overflow on min window width
79/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
memory safetyauthentication path
AI analysis · Informational 15/100
This commit is a purely cosmetic UI fix. It narrows three buttons on a desktop shopping page so they no longer overflow the window at the application's minimum width. There is no security relevance.
Security candidatefix(ui): don't display UTC timeby julian · 5fa4bcc1 · May 20, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · julian
fix(ui): don't display UTC time
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
authentication path
AI analysis · Informational 15/100
This commit changes a single screen in the Stack Wallet app so that timestamps are shown in the user's local time instead of UTC. It is a minor user-interface improvement 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
authentication path
AI analysis · Informational 15/100
This commit only changes the colors used for chat message bubbles in a customer-support ticket screen. It swaps hard-coded or theme-mismatched colors for theme-consistent primary/secondary button colors so the chat looks correct in light and dark modes. There is no security relevance.
Security candidaterefactor(ui): keep functionality the same as much as possible but refactor widget tree clean up and styling fixesby julian · 0f0d582f · May 20, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · julian
refactor(ui): keep functionality the same as much as possible but refactor widget tree clean up and styling 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 15/100
This commit is a user-interface cleanup for the ShopInBit ticket and request screens. It swaps some dialog and container widgets, extracts repeated list-row code into helper widgets, and changes how a loading spinner is shown during ticket sync. There is no indication of a security fix or vulnerability being addressed.
Security candidaterefactor(db): use drift/sqlite instead of isarby julian · f357b4a7 · May 20, 2026 · 28 filesMessage 57 · ThinInformational 11Details
Commit message · julian
refactor(db): use drift/sqlite instead of isar
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 pathauthentication path
AI analysis · Informational 11/100
This commit is a routine internal refactor that moves the app's shared database code from one location to another and switches some ShopInBit ticket data from the Isar database to a Drift/SQLite database. It is not described as a security fix, and the visible changes do not introduce obvious ways for an attacker to steal funds or data. The main risk is that any database migration could accidentally lose or corrupt user data, but nothing in the supplied diff proves that happened.
✓ 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
A one-line UI fix changes a safety check from 'if the widget is still in the tree' to 'if the Flutter BuildContext is still valid' before showing a temporary info banner. This is a routine Flutter correctness fix that prevents a possible crash when a screen is closed while the banner is being prepared. There is no direct evidence in the commit that this is a security issue.
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 15/100
This commit only adjusts the spacing between buttons on a settings screen, making gaps slightly wider on desktop and in a couple of places on mobile. It is a visual user-interface tweak with no security relevance.
Security candidatefix(ui): clean up flow logic and state issuesby julian · 1c6ffa9a · May 19, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · julian
fix(ui): clean up flow logic and state issues
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
authentication path
AI analysis · Informational 15/100
This commit is a routine UI cleanup in the Stack Wallet app's ShopInBit settings screen. It removes an extra 'verify your key' dialog that was managed inside the same screen and turns it into a separate, self-contained dialog widget. The visible behavior—asking the user to re-enter their saved customer key before continuing—appears unchanged. There is no clear security fix or vulnerability here; it looks like a code-quality refactor.
Security candidatechore: add some toString()sby julian · 8ed3d339 · May 19, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · julian
chore: add some toString()s
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
authentication path
AI analysis · Informational 15/100
This commit adds human-readable toString() methods and helper toMap() methods to three data classes that describe shopping tickets. It only changes how objects look when printed or logged; it does not alter how data is stored, transmitted, validated, or protected. There is no security issue visible in the change.
Security candidaterefactor(shopinbit): Store shop in bit settings using Drift, use providers for drift shared db and shopinbit service, and some general clean up and tweaksby julian · fa5fa812 · May 19, 2026 · 29 filesMessage 62 · AdequateInformational 19Details
Commit message · julian
refactor(shopinbit): Store shop in bit settings using Drift, use providers for drift shared db and shopinbit service, and some general clean up and tweaks
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 19/100
This commit is a routine refactor of the ShopinBit feature in Stack Wallet. It moves settings like whether the user accepted guidelines, completed setup, and their display name from the previous storage mechanism into a Drift/SQLite database, and switches UI code to use Riverpod providers for that database and the ShopInBit service. The diff shows no obvious malicious intent, no new network calls, no weakening of encryption, and no exposed secrets. It is primarily a code-quality and architecture change.
Security candidateFix Android APK signing (keystore format) in CI build jobby Dan Miller · ec2cabc3 · May 19, 2026 · 1 fileMessage 50 · ThinInformational 18Details
Commit message · Dan Miller
Fix Android APK signing (keystore format) in CI build job
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarydocumentation-only discount
AI analysis · Informational 18/100
This commit fixes a small but real bug in the automated build pipeline for Android. Previously, the build script used `echo` to write the signing keystore from a base64-encoded secret. If the secret was empty or missing, `echo` would still create an empty file and the build would continue, potentially producing an unsigned or broken APK. The fix uses `printf '%s'` to avoid adding a trailing newline, and adds a check that aborts the build if the keystore secret is empty. This is a reliability and correctness improvement rather than a direct security vulnerability in the app itself.
Security candidateFix Android APK signing (keystore format) in CI build jobby Dan Miller · e3256156 · May 19, 2026 · 1 fileMessage 50 · ThinInformational 18Details
Commit message · Dan Miller
Fix Android APK signing (keystore format) in CI build job
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarydocumentation-only discount
AI analysis · Informational 18/100
This commit changes the GitHub Actions build workflow for the Stack Wallet Android app. It adds a step that converts the uploaded Android signing keystore from its original format into the PKCS12 format before building the APK. This is a CI/build pipeline fix and does not, on its own, introduce a vulnerability. It does mean the CI job now handles the app's private signing keystore and its password, so the security of the build pipeline remains important.
Security candidatefix: allow shopinbit car request status updatesby julian · 7ddaa909 · May 19, 2026 · 1 fileMessage 57 · ThinInformational 17Details
Commit message · julian
fix: allow shopinbit car request status updates
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
authentication path
AI analysis · Informational 17/100
This commit removes a special workaround that previously skipped status and message updates for car-research tickets in a shopping feature. Now those tickets will call the same backend endpoints as other tickets. The change appears to be a functional bug fix rather than a security fix, but it slightly increases the amount of data exchanged with the backend for car-research tickets.
Security candidatefix: throw instead of silent failure leading to invalid enum value returns. And some other cleanupby julian · c6b313bb · May 19, 2026 · 5 filesMessage 62 · AdequateInformational 24Details
Commit message · julian
fix: throw instead of silent failure leading to invalid enum value returns. And some other cleanup
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 24/100
This commit changes how the Stack Wallet app handles unexpected status values from its ShopInBit partner service. Previously, if the server sent an unknown status string, the app silently replaced it with a default value (e.g., treating an unknown ticket state as a brand-new ticket). Now the app throws an exception instead. The commit also moves some UI label/color code into the enum definitions and removes duplicate code. The change is a defensive fix that prevents the app from misrepresenting order or webhook states, but it could also cause crashes if the server ever introduces new status values that older app versions don't recognize.
Security candidatefix: This does not actually return a 403 when testing and is required to get a status update. Commenting out for now as otherwise the request will stay pending for ever in the UIby julian · a4d82ec1 · May 19, 2026 · 1 fileMessage 84 · StrongInformational 11Details
Commit message · julian
fix: This does not actually return a 403 when testing and is required to get a status update. Commenting out for now as otherwise the request will stay pending for ever in the UI
84/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 11/100
A developer commented out a special-case skip that prevented 'car research' support tickets from having their status checked. The change makes the app try to fetch status for those tickets too, fixing a UI hang where the request appeared to stay pending forever. There is no clear security problem in the diff itself; it is a functional bug fix.
Security candidaterefactor: testing AI refactoringby julian · e9beb4ab · May 19, 2026 · 14 filesMessage 57 · ThinInformational 10Details
Commit message · julian
refactor: testing AI refactoring
57/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Informational 10/100
This commit is a large code cleanup that splits one big ShopinBit order form file into smaller, easier-to-maintain pieces. It does not appear to change what the app does or how user data is handled; it mostly moves existing UI code around. There is no clear security problem visible in the diff, but because the change is so large and was labeled as 'testing AI refactoring,' it could accidentally introduce subtle bugs that would need normal testing to catch.
AI review queuedfix prebuild script pathby Cyrix126 · 9e9ad30f · May 19, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Cyrix126
fix prebuild script path
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
This commit fixes a typo in the build instructions: it removes an unnecessary backslash before the PowerShell script name so the command works correctly. There is no security issue here.
AI review queuedfeat: use CoinSelection class from coinlib for coin selectionby Cyrix126 · 07908c21 · May 19, 2026 · 2 filesMessage 85 · StrongLow 26Details
Commit message · Cyrix126
feat: use CoinSelection class from coinlib for coin selection
Replace the legacy FIFO algorithm used so far, except for cases that can not be treated by new coin selection algorithms (mweb input, override fee, send all, coin control)
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 26/100
This commit swaps out an older, simpler method for choosing which coins to spend in Bitcoin-like wallets for a newer algorithm provided by an external library called coinlib. It also changes which fork of coinlib the app uses, from one maintained by a Stack Wallet contributor to one maintained by a community contributor. The change is described as a feature, not a security fix, and there is no disclosed vulnerability or incident tied to it. The main things to watch are whether the new coin-selection logic handles unusual transaction types correctly and whether the new coinlib fork is trustworthy and maintained.
✓ 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 17/100
This commit is a user-interface refactor for the desktop ShopinBit (crypto concierge shopping) flow. It replaces a brittle pattern of opening and closing separate dialogs for each step with a single dialog that contains its own nested navigator. There is no clear security bug being fixed; the changes are about navigation consistency and code maintainability. The only security-relevant observation is that the new route generator validates that navigation arguments are the expected order model, which slightly hardens type handling, but this is a normal defensive coding practice rather than a fix for a known vulnerability.
AI review queuedfix windows build docby Cyrix126 · b4c5c881 · May 18, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Cyrix126
fix windows build doc
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
This commit only updates the Windows build instructions in the project's documentation file (docs/building.md). It changes software version numbers, adds steps for installing tools like CMake, NuGet, and CppWinRT, and clarifies how to run build scripts. There is no change to application code, no bug fix, and no security-related content.
Security candidateCI workaround for github actions runnerby Dan Miller · bad423c8 · May 16, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · Dan Miller
CI workaround for github actions runner
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100
This commit is a routine GitHub Actions CI maintenance change. It adds the 'staging' branch to automated build triggers and fixes a Windows build problem where the CI runner could not create symbolic links (shortcuts) for app assets, so the workflow now copies those asset folders instead. There is no indication this affects user security or wallet safety.