SW
← All projectsStack Wallet

Stack Wallet

Actively maintained multi-coin self-custody wallet with Monero support and on-device keys.

MoneroPrivacy protocolsSoftware walletsNormal
Repository coverage

1053 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

338security candidates411second-pass queue749AI analyses
81commits · 30 days
175commits · 60 days
600commits · 180 days
1008commits · 365 days
Backfill bands
Sep 27 → Mar 31404 seen73 candidatesComplete
Mar 31 → Jul 29463 seen238 candidatesComplete
Jul 29 → Aug 2887 seen8 candidatesComplete
Aug 28 → Sep 2753 seen6 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

51/100 average clarity
33Strong · 80–100
316Adequate · 60–79
513Thin · 40–59
191Opaque · 0–39
33security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Navid Rahimi1017154
sneurlax339158241062
julian347112269044
Julian19741144043
Dan Miller831525053
Reuben Yap20318052
Cyrix12615211049
julian-CStack222049
levoncrypto24121043
Tritonn204412052
cassandras-lies413048
NyanCatTW1111045
Analysis record

Published AI watches

Last scanned 53 minutes ago

Informational 24 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1469 from Cyrix126/building_dialog_cancel

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
94e6da66by Julian+68−8412 files
No security note in commit
Informational 20 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into building_dialog_cancel

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
0485b166by Julian+194−56 files
No security note in commit
Informational 17 AI analysisMessage 58 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1468 from Cyrix126/desktop_fee_form_refetch

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
62432946by Julian+176−52 files
No security note in commit
Informational 17 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into desktop_fee_form_refetch

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)
8a72c82fby Julian+18−04 files
No security note in commit
Low 32 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1467 from Cyrix126/clear_send_form_validity

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
d3383b4eby Julian+2−02 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into clear_send_form_validity

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.

22560a59by Julian+16−02 files
No security note in commit
Informational 20 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1466 from Cyrix126/desktop_token_qr_button

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…

47f6d369by Julian+16−02 files
No security note in commit
Informational 15 AI analysisMessage 18 · Opaque
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

style: format

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.

ae45aba8by Cyrix126+47−524 files
No security note in commit
Informational 23 AI analysisMessage 62 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix: stop estimating the desktop fee for a zero amount

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
90c91bdeby Cyrix126+22−02 files
No security note in commit
Low 32 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

show split tx warning on confirm screen

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
80343a5aby Julian+376−23916 files
No security note in commit
Informational 18 AI analysisMessage 62 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix: stop refetching the desktop fee rates on every rebuild

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
a1ca9292by Cyrix126+154−52 files
No security note in commit
Low 34 AI analysisMessage 62 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix: reset the address validity when clearing the send form

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
43dd0477by Cyrix126+2−02 files
No security note in commit
Low 35 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1450 from Ez3kiel-dev/fix/xelis-integration

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
ad945d43by Julian+4298−162634 files
No security note in commit
Low 32 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into fix/xelis-integration

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
b0e5d35aby Julian+2678−330378 files
No security note in commit
Informational 19 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1361 from cypherstack/fix/305-multiline-transaction-notes

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` …

5172e63eby Julian+402−1113 files
No security note in commit
Low 32 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into fix/305-multiline-transaction-notes

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
21491edbby Julian+2352−319075 files
No security note in commit
Moderate 57 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1455 from cypherstack/fix/desktop-pw-reset

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
055e6c6bby Julian+1077−297154 files
No security note in commit
Low 37 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into fix/desktop-pw-reset

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.
d9b5cc02by Julian+1275−21923 files
No security note in commit
Low 34 AI analysisMessage 83 · Strong
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1439 from navidR/dev/navidr/spark-name-verification

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
a5411a50by Julian+1097−16616 files
No security note in commit
Low 39 AI analysisMessage 60 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into dev/navidr/spark-name-verification

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
92955848by Julian+122−507 files
No security note in commit
Repository ledger

Explore captured commits

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

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

Lower-priorityMasternode collateral dialogs on mobileby levoncrypto · b367aa95 · May 19, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · levoncrypto

Masternode collateral dialogs on mobile

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
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
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

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.

Security candidatefix(ui): desktop shopinbit dialog flow nested navigationby julian · eba53250 · May 18, 2026 · 11 filesMessage 62 · AdequateInformational 17Details
Commit message · julian

fix(ui): desktop shopinbit dialog flow nested navigation

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 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
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

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.

Lower-priorityfix(ui): dynamic dialog heightby julian · d512c585 · May 15, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · julian

fix(ui): dynamic dialog height

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatechore: fix and clean up WIPby julian · 5eaf945e · May 15, 2026 · 6 filesMessage 37 · OpaqueInformational 14Details
Commit message · julian

chore: fix and clean up WIP

37/100 · OpaqueMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body! Contains work-in-progress language! Opaque security-relevant change
Why it was queued
authentication path
AI analysis · Informational 14/100

This commit is a routine UI cleanup for work-in-progress gift-card and shopping features. It swaps custom text fields and dialogs for shared reusable widgets, removes unused focus nodes, and fixes small layout and error-message details. There is no clear security problem in the changes, and nothing in the commit message or diff indicates a security fix.

AI review queuedrefactor(mwc): write .api_secret in updateNode(), not _getConfig()by sneurlax · e99bbc0e · May 15, 2026 · 1 fileMessage 62 · AdequateLow 26Details
Commit message · sneurlax

refactor(mwc): write .api_secret in updateNode(), not _getConfig()

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 26/100

This commit moves where a secret API file is created for the Mimblewimblecoin wallet. Previously, the file was created while reading the wallet configuration. Now, it is created when the wallet node is updated. The change appears to be a code cleanup (refactor) to ensure the secret is written at a more appropriate time, but the commit message and diff do not clearly explain any security problem being fixed.

AI review queuedfix(mwc): clear stale wallet-handle key in db v15->v16 migrationby sneurlax · af57657f · May 15, 2026 · 2 filesMessage 62 · AdequateModerate 57Details
Commit message · sneurlax

fix(mwc): clear stale wallet-handle key in db v15->v16 migration

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 · Moderate 57/100

This commit fixes a database migration for Mimblewimblecoin (MWC) wallets in Stack Wallet. Older versions left behind a stale 'wallet handle' key in secure storage. The patch moves cleanup of that stale key from normal wallet startup into a one-time database upgrade routine, so it is reliably cleared for all users upgrading from older builds. A leftover wallet handle could potentially be reused or leaked across wallet instances, which is a security hygiene issue, though the commit itself does not describe an active exploit.

Lower-priorityOffer Spark unshield for masternode consolidation feeby levoncrypto · 7b427dc1 · May 15, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · levoncrypto

Offer Spark unshield for masternode consolidation fee

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queueddart formatby levoncrypto · 595b41ca · May 15, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · levoncrypto

dart format

0/100 · OpaqueMessage clarity
! Very short subject! 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 only reformats a single line of code to match Dart style rules. It does not change what the code does, so it has no security impact.

AI review queuedMasternode collateral fee check and send cancel black screenby levoncrypto · 7fd62d69 · May 15, 2026 · 4 filesMessage 73 · AdequateLow 29Details
Commit message · levoncrypto

Masternode collateral fee check and send cancel black screen

- Show exact fee amount when transparent balance equals exactly 1000
FIRO, preventing a silent consolidation that would result in a
sub-1000 UTXO unusable as collateral
- Move wasCancelled outside try{} so catch block can read it
- Skip building-dialog pop in catch when user already cancelled,
preventing a double-pop that caused a black screen
- Remove redundant Navigator.pop() from desktop_send onCancel callback
(BuildingTransactionDialog already pops itself)
- Show loading overlay via showLoading on desktop when send_view is
opened from a non-desktop flow (e.g. masternodes collateral prep)

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 29/100

This commit fixes user-experience and minor reliability bugs in Stack Wallet's masternode collateral flow. It prevents users from accidentally creating a FIRO transaction that leaves them with less than the required 1000 FIRO collateral because of a hidden network fee. It also fixes a 'black screen' bug that could happen if a user cancels a send while the app is still building the transaction. A small Particl wallet change adds a flag but its security effect is unclear from the diff alone.

Security candidatefix: context.mounted check (and a bunch of auto format)by julian · 211971b5 · May 14, 2026 · 1 fileMessage 62 · AdequateInformational 16Details
Commit message · julian

fix: context.mounted check (and a bunch of auto format)

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
cryptography-sensitive path
AI analysis · Informational 16/100

This commit fixes a Flutter widget state check in a cryptocurrency selection screen. It changes `mounted` to `context.mounted` before navigating back. The rest of the change is automatic code formatting. The fix prevents a potential app crash when a user presses the back button after the screen has already been disposed.

AI review queuedchore: refactor a big widget's build method and some more general house keepingby julian · cdcc72d6 · May 14, 2026 · 7 filesMessage 62 · AdequateInformational 17Details
Commit message · julian

chore: refactor a big widget's build method and some more general house keeping

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 17/100

This commit is mostly a cleanup and visual refactor of the gift-card purchase screens. It splits a large widget into smaller pieces, replaces a generic gift-card icon with a reusable credit-card icon, and switches money amounts from floating-point (double) to a more precise Decimal type. There is no obvious security fix here; the changes are housekeeping and UI consistency.

Security candidatechore(mwc): bump flutter_libmwcby sneurlax · 962755f2 · May 14, 2026 · 1 fileMessage 47 · ThinInformational 4Details
Commit message · sneurlax

chore(mwc): bump flutter_libmwc

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 4/100

This commit only updates a dependency reference (flutter_libmwc) for the MWC cryptocurrency plugin. No code changes are shown, and there is no information about what changed in the dependency itself. Based on the available materials, this looks like a routine maintenance update rather than a security fix.

AI review queuedrefactor(mwc): keep wallet handle in instance var, not secure storageby sneurlax · e167e82a · May 14, 2026 · 1 fileMessage 77 · AdequateModerate 53Details
Commit message · sneurlax

refactor(mwc): keep wallet handle in instance var, not secure storage

chore(mwc): trim comments around wallet-handle refactor

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 53/100

This commit refactors how Stack Wallet stores the live Mimblewimblecoin (MWC) wallet handle. Previously, the app saved a process-scoped Rust pointer in secure storage, which could be reused after an app restart and cause crashes or memory corruption. Now the handle is kept only in memory for the current process, and stale pointers are deleted from secure storage. The change reduces the risk of crashes and undefined behavior, but it is a defensive refactor rather than a confirmed remote exploit fix.

AI review queuedfix(mwc): discard stale wallet handle from previous processby sneurlax · 47ad670b · May 13, 2026 · 1 fileMessage 62 · AdequateModerate 60Details
Commit message · sneurlax

fix(mwc): discard stale wallet handle from previous process

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 · Moderate 60/100

This fix prevents the Mimblewimblecoin wallet from reusing a stale wallet handle left over from a previous app launch. The old handle is a raw memory pointer stored in secure storage; using it after the app restarts would crash the app. The patch now deletes any leftover pointer unless it was created by the currently running app process, then opens the wallet fresh.

Lower-priorityfix(wl_gen): expose initLogs on LibMwcInterfaceby sneurlax · febb52fe · May 13, 2026 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · sneurlax

fix(wl_gen): expose initLogs on LibMwcInterface

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatefix(mwc): bump flutter_libmwc for get_chain_height chain type fixby sneurlax · c5229444 · May 13, 2026 · 1 fileMessage 77 · AdequateInformational 21Details
Commit message · sneurlax

fix(mwc): bump flutter_libmwc for get_chain_height chain type fix


diag(mwc): panic hook, listener fallback, and scanOutputs catch_unwind

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 21/100

This commit updates a cryptocurrency plugin dependency (flutter_libmwc) used by Stack Wallet for MWC coin support. The title says it fixes how the wallet asks the MWC library for the current chain height, and the message mentions adding panic handling and fallback logic in that plugin. The actual code change is only one line in a submodule reference, so we cannot see what really changed inside the plugin. There is no clear security claim by the project, and no independent report is cited.

AI review queueddiag(mwc): initialize MWC Rust trace logger on first wallet openby sneurlax · 972a5b3a · May 13, 2026 · 1 fileMessage 50 · ThinInformational 19Details
Commit message · sneurlax

diag(mwc): initialize MWC Rust trace logger on first wallet open

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 adds diagnostic logging for the Mimblewimblecoin (MWC) wallet. It initializes a Rust-side trace logger the first time an MWC wallet is opened, so that if the underlying native code crashes silently, developers have a log file to inspect. It is a debugging/diagnostic improvement, not a fix for an exploitable vulnerability.