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
77commits · 30 days
175commits · 60 days
600commits · 180 days
1005commits · 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 24 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.

AI review queuedfeat: add ordinal spend warning to confirm transaction viewby sneurlax · e673f614 · Mar 3, 2026 · 1 fileMessage 62 · AdequateInformational 19Details
Commit message · sneurlax

feat: add ordinal spend warning to confirm transaction view

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 adds a warning message shown to users when they are about to spend a Bitcoin UTXO that contains an ordinal inscription. It is a user-interface safety feature, not a fix for a code vulnerability. It helps prevent users from accidentally spending or losing valuable or meaningful inscription assets.

AI review queuedfix: check isOnline before offlineMode in Xelis exit()by sneurlax · 00b95a0e · Mar 1, 2026 · 1 fileMessage 62 · AdequateLow 30Details
Commit message · sneurlax

fix: check isOnline before offlineMode in Xelis exit()

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

This is a small, defensive bug fix in the Xelis cryptocurrency wallet's shutdown code. Before the change, the wallet always tried to put itself into 'offline mode' when exiting, even if it was already offline. After the change, it first checks whether the wallet is actually online and only then switches to offline mode. The main risk is avoiding unnecessary or incorrect state changes during shutdown, which could potentially cause crashes, resource leaks, or confusion in wallet state. There is no direct evidence of a security vulnerability being exploited.

AI review queuedfix: temp input script index in particl buildTransactionby sneurlax · 933d2686 · Mar 1, 2026 · 1 fileMessage 42 · ThinLow 41Details
Commit message · sneurlax

fix: temp input script index in particl buildTransaction

42/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 41/100

This commit fixes a small but meaningful bug in how Stack Wallet builds Particl cryptocurrency transactions. The code was accidentally reading the script signature from the first input for every input, instead of reading the correct one for each input. That could corrupt the transaction data the wallet stores or signs, potentially causing invalid transactions, failed sends, or in the worst case a security issue if the wrong data is signed. The fix changes one index from 'first input' to 'current input'.

Security candidatefix: particl transactionVersion property to return 160by sneurlax · 7cb913cc · Mar 1, 2026 · 1 fileMessage 62 · AdequateLow 31Details
Commit message · sneurlax

fix: particl transactionVersion property to return 160

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 pathsigning or wallet path
AI analysis · Low 31/100

This commit changes a single number used when building Particl cryptocurrency transactions. The previous value (1) was replaced with 160, which appears to be the correct transaction version for the Particl network. Using the wrong version could cause transactions to be rejected by the network or behave unexpectedly, but the commit itself is a straightforward fix rather than an attack or vulnerability patch.

AI review queuedfix: witness field parsing in particl updateTransactionsby sneurlax · 42e8cec0 · Mar 1, 2026 · 1 fileMessage 62 · AdequateLow 34Details
Commit message · sneurlax

fix: witness field parsing in particl updateTransactions

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

This commit fixes how the Particl wallet reads transaction input data, specifically the 'witness' field, by switching to a dedicated parser instead of manually pulling fields. The change suggests the previous code may have misread or mishandled witness data, which could cause incorrect transaction details, failed transactions, or wallet display errors for Particl users. There is no claim in the commit that this is a security fix, and no independent security analysis is supplied.

AI review queuedfix: checkBlockUTXO only checking the specific UTXO outputby sneurlax · 8b82eb1c · Mar 1, 2026 · 1 fileMessage 62 · AdequateLow 40Details
Commit message · sneurlax

fix: checkBlockUTXO only checking the specific UTXO output

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

This commit fixes a bug in how Stack Wallet checks whether a Particl coin can be spent. Previously, the wallet looked at every output in the entire transaction to decide if a single coin (UTXO) was blocked. If any unrelated output in the same transaction was a blind/confidential/data/staking output, the wallet would wrongly mark the user's spendable coin as blocked too. Now it only checks the specific output that actually belongs to the coin in question. This is a correctness fix that could prevent coins from being incorrectly frozen or hidden from the user, but it does not appear to be a direct theft or remote-code-execution vulnerability.

AI review queuedfix: ordinals by looking up tx info directlyby sneurlax · dd8be539 · Mar 1, 2026 · 4 filesMessage 80 · StrongLow 35Details
Commit message · sneurlax

fix: ordinals by looking up tx info directly

TODO: remove (comment?) dead code
litescribe_api.dart, litescribe_response.dart, address_inscription_response.dart are now orphaned

80/100 · StrongMessage clarity
✓ 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 35/100

This commit changes how the Stack Wallet app detects Litecoin Ordinals (a type of digital collectible). Instead of asking a third-party service (litescribe.io) which inscriptions belong to a wallet address, the app now asks its own ord-litecoin.stackwallet.com server directly about each transaction output. The change removes a heuristic that blocked small outputs as 'possible ordinals' only when an address-level check passed, and instead checks each output directly. There is no clear security bug being fixed, but the commit does switch data sources and removes some protective logic around small-value outputs.

Security candidatefix: show token ticker in DesktopAuthSend promptby sneurlax · 45bb288e · Mar 1, 2026 · 1 fileMessage 57 · ThinInformational 17Details
Commit message · sneurlax

fix: show token ticker in DesktopAuthSend prompt

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

This commit fixes a small user-interface label bug on the desktop send confirmation screen. Previously, when sending a token (for example, an Ethereum ERC-20 token), the prompt incorrectly showed the parent coin's ticker (e.g., ETH) instead of the token's own ticker (e.g., USDT). The change lets the screen receive and display the correct token ticker. It is a cosmetic fix, not a security fix.

AI review queueddelete custom epicbox impl and some other minimal working changesby julian · aa20a549 · Feb 4, 2026 · 8 filesMessage 50 · ThinInformational 18Details
Commit message · julian

delete custom epicbox impl and some other minimal working changes

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

This commit removes a custom Epicbox server implementation from the Stack Wallet app and switches the UI to use a built-in list of default Epicbox servers. It also adds delete buttons for custom servers and changes how default servers are stored. There is no clear security fix here; it looks like a feature refactor or cleanup that may have minor side effects on how server settings are saved and restored.

AI review queuedfeat: add mobile epicbox server mgmt uiby sneurlax · 03eb5861 · Feb 4, 2026 · 5 filesMessage 57 · ThinInformational 16Details
Commit message · sneurlax

feat: add mobile epicbox server mgmt ui

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit adds a new mobile screen for managing 'Epicbox' servers used by Epic Cash wallets. It lets users add, edit, and pick custom server addresses. The change is a feature addition; there is no direct evidence in the commit that it fixes a security bug or introduces a clear vulnerability, but it does expose network endpoint configuration to the user and performs live connection tests from the app.

AI review queuedclean up txv2by julian · d2f99c98 · Feb 3, 2026 · 1 fileMessage 28 · OpaqueInformational 16Details
Commit message · julian

clean up txv2

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit tidies up a Dart file that decides what text label to show for cryptocurrency transactions (for example, 'Received', 'Sending', or 'Cancelled'). It removes a large block of duplicated code and changes the logic that decides when a transaction is 'waiting for sender' or 'waiting for receiver' so it also considers whether an optional on-chain note is present. The change is a code cleanup with a small logic adjustment; there is no direct evidence it fixes a security vulnerability.

AI review queuedfix address orderby julian · be51789f · Feb 3, 2026 · 1 fileMessage 28 · OpaqueLow 29Details
Commit message · julian

fix address order

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 29/100

This commit fixes a likely data-labeling bug in the Epic Cash wallet code. The previous code assigned the sender's address to a transaction output (money received) and the recipient's address to a transaction input (money spent). The swap corrects this so outputs are labeled with the recipient's address and inputs with the sender's address. This is primarily a correctness/display issue rather than a direct theft vulnerability, but it could mislead users or downstream features about where funds came from or went.

AI review queuedaccount for on chain note in messagesby julian · b4600e13 · Feb 3, 2026 · 1 fileMessage 45 · ThinInformational 17Details
Commit message · julian

account for on chain note in messages

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit fixes a small logic bug in how Stack Wallet displays the status of certain transactions. Previously, the app did not count an optional on-chain note as one of the messages, so it could show the wrong status label (for example, saying it is still waiting for the sender when it should already be waiting for confirmations). There is no sign this can be used to steal funds or attack users; it is mainly a user-interface correctness fix.

AI review queuedupdate epic when epic box is changed receiving addressby julian · 4e7ac9e2 · Feb 3, 2026 · 2 filesMessage 50 · ThinLow 31Details
Commit message · julian

update epic when epic box is changed receiving address

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 31/100

This commit changes how Stack Wallet handles Epic Cash receiving addresses when the Epic Box server (a messaging relay for this privacy coin) is changed. It removes some default servers, renames others, and adds logic to regenerate and store the wallet's receiving address whenever the Epic Box configuration changes. The change appears to be a bug fix to keep the wallet's displayed address in sync with the active relay server, rather than a security vulnerability fix.

AI review queueddo not say on chain note is optionalby julian · 8a67326f · Feb 3, 2026 · 2 filesMessage 45 · ThinInformational 16Details
Commit message · julian

do not say on chain note is optional

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit simply removes the word "(optional)" from two on-screen labels in the Stack Wallet app. The labels now say "On chain Note" instead of "On chain Note (optional)". There is no code behavior change, no security fix, and no vulnerability being addressed. It is a minor user-interface wording update.

AI review queuedfeat: use stored epicbox config when availableby sneurlax · 18310165 · Feb 3, 2026 · 1 fileMessage 57 · ThinInformational 16Details
Commit message · sneurlax

feat: use stored epicbox config when available

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit changes how the Epic Cash wallet picks its Epicbox server configuration. Previously it always used a hardcoded default server. Now it first tries to read a user-stored configuration from secure device storage and only falls back to the default if none exists or it cannot be parsed. The change is a feature improvement, not a direct security fix, but it reduces reliance on a single hardcoded server.

AI review queuedfeat: add epicbox server management uiby sneurlax · fd2df8fd · Feb 3, 2026 · 6 filesMessage 57 · ThinInformational 19Details
Commit message · sneurlax

feat: add epicbox server management ui

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit adds a new user-interface feature for managing 'Epic Box' servers in the Stack Wallet desktop app. It lets users add, edit, test, and connect to custom Epic Cash (EPIC) relay servers. The change is a feature addition, not a documented security fix. There are no obvious remote-code-execution or data-theft bugs visible in the diff, but it does introduce network calls to user-supplied hosts and stores custom server entries, which could in principle be abused by a malicious server or a social-engineering attack if input validation or TLS handling elsewhere is weak.

AI review queuedelectrumx disable acceptUnverifiedby julian · f55bc21a · Feb 2, 2026 · 2 filesMessage 35 · OpaqueModerate 66Details
Commit message · julian

electrumx disable acceptUnverified

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Moderate 66/100

This commit changes two places in a cryptocurrency wallet app where it connects to ElectrumX servers. Previously, one connection accepted unverified TLS/SSL certificates (acceptUnverified: true), which could let a malicious server impersonate a legitimate one. The patch disables that behavior (acceptUnverified: false) and also explicitly disables it in a connection-check helper. In plain terms, the wallet will now refuse to trust servers that cannot prove their identity with a valid certificate, reducing the risk of man-in-the-middle attacks.

AI review queueduse const http constructorby julian · bdb1d418 · Jan 30, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · julian

use const http constructor

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This is a tiny code-quality change that replaces a regular HTTP client instance with a constant one. It does not fix a security bug and does not change what the app does or how it connects to the internet.

AI review queuedfix db transactionby julian · 3af79fdb · Jan 30, 2026 · 1 fileMessage 28 · OpaqueLow 29Details
Commit message · julian

fix db transaction

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 29/100

This commit fixes a database cleanup routine that deletes a wallet's blockchain data (transactions, addresses, and unspent coins). Previously, the code counted records outside of the write transaction, then opened a transaction to delete them. If data changed between the count and the deletion, the loop logic could behave incorrectly. The fix moves the counts inside the same write transaction and increases the batch size from 50 to 100. There is no claim in the commit that this is a security fix, and no public references tie it to an incident.

AI review queuedat least log wallet delete errorsby julian · ab2bb49d · Jan 30, 2026 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · julian

at least log wallet delete errors

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit adds error logging when deleting a wallet fails, and makes minor code cleanups. It does not fix the underlying deletion failure or change how the app behaves when an error occurs. The user still sees the same result, but developers now get a log entry to help diagnose problems.

AI review queuedcode style/formattingby julian · e226ff32 · Jan 30, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · julian

code style/formatting

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is purely a code-style and formatting cleanup. It extracts two long user-facing text strings into named constants and adjusts indentation to match the project's formatting rules. There is no change to app behavior, security logic, or user-visible wording.

AI review queuedfix state errorby julian · 46efac2c · Jan 30, 2026 · 1 fileMessage 28 · OpaqueInformational 16Details
Commit message · julian

fix state error

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 16/100

This is a small UI stability fix in a Dart/Flutter transaction list screen. It checks whether the widget is still on screen before calling setState after an asynchronous data update, preventing a common Flutter runtime error when a user navigates away before the update arrives. There is no indication this affects funds, keys, network traffic, or app permissions.

AI review queuedoptimise spark spendsby Julian · 316e6273 · Jan 30, 2026 · 1 fileMessage 28 · OpaqueLow 28Details
Commit message · Julian

optimise spark spends

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 28/100

This commit optimizes how the wallet prepares private Spark coin spends. It adds a check that throws an error if no spendable coins exist, and it changes the code to only fetch data for the specific coin groups the user actually owns, rather than scanning every group ID from 1 up to the latest one. This is a performance and robustness improvement, not a clear security fix, though it may reduce exposure to certain failure modes.

AI review queuedfix spark isolate initby julian · 4faa2624 · Jan 27, 2026 · 1 fileMessage 28 · OpaqueLow 29Details
Commit message · julian

fix spark isolate init

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 29/100

This commit fixes a race condition in how a background worker (called an 'isolate') for the Spark privacy feature is initialized. Previously, if two parts of the app tried to start the isolate at nearly the same time, both could try to create it, which could waste resources, cause errors, or leave the wallet in an inconsistent state. The fix uses a one-time 'Completer' so that any concurrent callers wait for the first initialization to finish instead of spawning duplicate isolates.