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
32Strong · 80–100
307Adequate · 60–79
505Thin · 40–59
190Opaque · 0–39
32security candidates with opaque commit messaging
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
This commit adds a new feature to Stack Wallet that lets Spark (Firo privacy) address owners prove they control an address, and lets others verify that proof. It also fixes a few related UI issues: view-only wallets can now only verify (no…
New cryptographic signing/verification API integrated into walletView-only wallet restriction added to prevent signing with private keysWhitespace preservation in pasted messages reduces signature/verification mismatch risk
This commit adds a small convenience feature in Stack Wallet: when a user scans or opens a Firo payment QR code that contains a 'message' field and the payment address is a Spark privacy address, the wallet now automatically copies that me…
Untrusted paymentData.message is copied into a transaction memo field without visible escaping/sanitizationRelies on SparkInterface.validateSparkAddress to gate memo population; correctness of that helper is not shown in the diffBehavior parity with firo-qt suggests a UX fix rather than a vulnerability fix
This commit fixes a small user-experience gap in the Stack Wallet app for Firo cryptocurrency users. When someone scans or opens a Firo payment link (URI) that includes a message and the payment is going to a Spark privacy address, the app…
No security-relevant signals detected in the diff.Change is a UI autofill feature for Firo Spark memos from payment URI messages.No input sanitization changes beyond existing address validation.
This commit fixes a small user-experience bug in Stack Wallet for Firo cryptocurrency. When a user scanned or pasted a firo: payment link containing a message, the app previously put that message only in the local private note field. Now, …
No input sanitization on URI-derived memo before assigning to controllerBehavior aligned with firo-qt reference implementationNo changes to signing, encryption, address parsing, or network calls
This commit removes the user-facing 'operator reward' field from the Firo masternode registration screen and hard-codes that value to zero in the wallet logic. It is a feature removal rather than a fix for an active security flaw, but it d…
Removal of user-supplied numeric field that directly influenced on-chain transaction payload (nOperatorReward basis points)Elimination of locale-dependent decimal parsing and rounding path for a consensus-relevant valueHard-coding of a transaction field that previously had range/validation checks
This commit changes how a Firo cryptocurrency wallet picks a special 'owner address' when setting up a masternode. Previously, the wallet only made sure the owner address was different from the collateral address. Now it also checks that t…
Address reuse prevention for masternode owner/payout rolesDefensive validation of derived addresses before useException raised when a suitable distinct address cannot be derived
This change updates the Firo wallet's masternode owner address selection so that the chosen owner address is different from both the collateral address and the payout address. Previously, the code only ensured the owner address differed fr…
Defensive address-distinctness check added for masternode owner addressPrevents owner address from matching payout address, not just collateral addressError message updated to reflect new dual-distinctness requirement
This commit is a routine feature merge that adds support for a new Ethereum token called rsFIRO across several app variants. It updates token lists, adds an icon, and includes a database migration so existing users automatically see the ne…
No security-relevant code changes observedNew asset and token configuration onlyDatabase migration is additive and idempotent (checks for existing contract before insert)
This commit is a routine feature merge that adds support for a new Ethereum token called rsFIRO, updates some app configuration scripts, refreshes a privacy-related Git dependency, and fills in missing API-key placeholders for exchange int…
Database migration inserts a hardcoded token contract if the app config includes it and the contract is not already presentExternal Git dependency mobile_app_privacy changed to a new commit; content of new commit not suppliedNew exchange API key placeholders added (Trocador, LetsExchange, CypherGoat) in test/prebuild scripts
This commit adds support for a new Ethereum token called rsFIRO and makes the list of default Ethereum tokens configurable for each app flavor (Stack Wallet, Stack Duo, Campfire). It also includes a database migration so existing users get…
Database migration inserts a hardcoded ERC-20 contract address into user data based on app configurationMigration checks for existing contract by case-insensitive address comparison before insertionToken icon rendering now branches on contract address equality, which is a presentation-layer change
This small change relaxes a wallet rule for the Firo cryptocurrency. Previously, when setting up a masternode-like service, the wallet required the 'owner address' to be different from the 'voting address'. Now it allows them to be the sam…
Removal of address distinctness check between owner and voting addressesChange affects Firo masternode address derivation logicNo input validation, cryptographic, or memory-safety changes present
This change fixes how Stack Wallet picks a special 'owner address' for Firo masternode-related operations. Previously, the wallet only made sure the owner address was different from the collateral address. Now it also ensures it differs fr…
Address reuse prevention across masternode rolesFiro masternode owner/payout/voting address separationPrivacy improvement by avoiding identical addresses for distinct transaction roles
This commit simply runs a cleanup tool on three SVG image files used for the rsFIRO cryptocurrency icon. It removes unnecessary formatting and metadata from the image files without changing their visual appearance. There is no security rel…
This commit is a routine merge from a staging branch that mostly tidies up build scripts and CI. The only user-visible change is that the Firo wallet now groups 'revoked' and 'banned' masternodes together under a single red 'banned' label,…
Dependency version bump for mobile_app_privacy (git ref changed).gitignore relaxation for cs_monero build artifacts and diff filesCI/build scripts now auto-generate API key template with additional Trocador placeholders
✓ 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 15/100
This commit simply runs a cleanup tool on three SVG image files used for the rsFIRO cryptocurrency icon. It removes unnecessary formatting and metadata from the image files without changing their visual appearance. There is no security relevance.
AI review queuedMerge staging and keep the upstream CI workflowby Reuben Yap · 2dbadce6 · Sep 24, 2026 · 10 filesMessage 45 · ThinInformational 18Details
Commit message · Reuben Yap
Merge staging and keep the upstream CI workflow
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 18/100
This commit is a routine merge from a staging branch that mostly tidies up build scripts and CI. The only user-visible change is that the Firo wallet now groups 'revoked' and 'banned' masternodes together under a single red 'banned' label, instead of showing them as two separate statuses. It also updates a privacy-related internal dependency and makes sure empty API key templates are created automatically during builds and tests. There is no obvious security vulnerability in the diff itself.
remove operator reward option from masternode registration
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 23/100
This commit removes the user-facing 'operator reward' field from the Firo masternode registration screen and hard-codes that value to 0. The change simplifies the form and prevents users from entering an operator reward percentage. There is no direct evidence in the commit that this fixes an active security vulnerability, but it does eliminate a potential source of user error or misuse in how masternodes are registered.
AI review queuedclean up and fix ciby Julian · abae853a · Sep 23, 2026 · 6 filesMessage 38 · OpaqueInformational 13Details
Commit message · Julian
clean up and fix ci
38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 13/100
This commit is routine build and continuous-integration housekeeping. It adds missing placeholder API key entries for several exchange partners (including Trocador) to test and prebuild scripts, removes some stale gitignore entries, and fixes a minor string formatting issue in an error message. There is no indication of a security vulnerability being fixed.
Merge pull request #1451 from levoncrypto/masternode-status
use ACTIVE/BANNED masternode statuses, revoked masternodes are banned
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 19/100
This commit simplifies how the Stack Wallet app displays Firo masternode status. Previously, the app distinguished between masternodes that were 'banned' and those that were 'revoked'. Now both conditions are shown as 'BANNED' with a red color. This is a user-interface labeling change; it does not appear to alter wallet security, transaction handling, or private keys.
use ACTIVE/BANNED masternode statuses, revoked masternodes are banned
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 16/100
This commit simplifies how the Stack Wallet app labels Firo masternodes. Previously, the app distinguished between 'banned' and 'revoked' masternodes, showing banned ones in orange and revoked ones in red. Now both states are treated as 'banned' and shown in red. This is a UI/status-label change; it does not appear to alter how transactions are signed, validated, or how funds are handled.
Merge branch 'staging' into codex/rsfiro-app-config
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 20/100
This commit is a routine merge that improves how the Stack Wallet app displays Firo masternode status. Previously, a masternode was shown as simply 'ACTIVE' or 'REVOKED' based only on whether it had been revoked. Now it can also show 'BANNED' when the masternode has been banned for misbehavior (a 'poseBanHeight' value other than -1). The colors in the UI were also updated so banned nodes appear orange instead of green or red. There is no indication this fixes a security vulnerability; it is a user-interface accuracy improvement.
AI review queuedci: format touched files and reuse test key stubsby Reuben Yap · 015a8011 · Sep 23, 2026 · 5 filesMessage 67 · AdequateInformational 15Details
Commit message · Reuben Yap
ci: format touched files and reuse test key stubs
67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is purely cosmetic and CI-related. It reformats several Dart UI files to match the project's code style and removes a redundant fallback block in the GitHub Actions test workflow that wrote empty placeholder API keys when real keys were not supplied. There is no functional change to app behavior or security-sensitive logic.
feat: load rsFIRO icons from per-app asset sources
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit simply swaps the source of the rsFIRO token icon from a network-downloaded image to a local SVG file bundled inside the app. It is a cosmetic/user-interface change with no security implications.
✓ 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 19/100
This commit reorganizes how Stack Wallet and its related apps choose which Ethereum tokens appear by default. It does not fix a security bug and does not introduce an obvious vulnerability. The main change is moving the default token list from a single shared file into per-app configuration scripts, and adding a new rsFIRO token for the Campfire app. The token contract addresses shown in the diff match well-known public Ethereum addresses, so there is no direct evidence of malicious token substitution.
Merge pull request #1449 from levoncrypto/masternode-ui
Fix masternode status
58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 18/100
This commit fixes the masternode status display in the Firo wallet. Previously, the UI only showed a masternode as either 'ACTIVE' or 'REVOKED' based on a single check. Now it correctly distinguishes three states: active, banned, and revoked. This is a user-interface bug fix with no apparent security impact.
✓ 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 19/100
This commit fixes how the app displays the status of Firo masternodes. Previously, a masternode was shown as either 'ACTIVE' or 'REVOKED' based only on whether it had been revoked. Now it also recognizes a 'BANNED' state (when the node has been banned for misbehavior). This is a UI/accuracy improvement, not a security vulnerability fix.
Merge pull request #1437 from cypherstack/julian/various-fixes-contd
Julian/various fixes contd
58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet pathauthentication pathmerge-commit duplicate discount
AI analysis · Low 44/100
This is a very large routine merge of 'various fixes' for the Stack Wallet Flutter app. The visible changes mostly update build tooling (Flutter 3.47.2, Android Gradle Plugin 9, Go/Rust versions), switch several crypto plugins from Git submodules to native-assets/prebuilt builds, reformat code, regenerate Isar database schema files, and fix a handful of UI/amount-handling bugs. There is no explicit security disclosure in the commit message or diff, and no single clearly exploitable vulnerability is introduced. The most security-relevant code-level changes are hardening touches: Android secure-storage options now disable reset-on-error and enable backup migration, ElectrumX ping now returns false on timeout instead of throwing, and MWEB peg-out UTXOs now enforce an extra maturity check before being considered spendable. However, the patch is huge (234 files, thousands of lines changed), so a complete security review is not possible from the supplied excerpt alone.
AI review queuedupdate mobile_app_privacy with swiftpmby Julian · 03ad8804 · Sep 16, 2026 · 2 filesMessage 35 · OpaqueLow 30Details
Commit message · Julian
update mobile_app_privacy with swiftpm
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 30/100
This commit updates a dependency called mobile_app_privacy from version 0.0.3 to a specific commit hash (0.0.4). The change appears to be a routine dependency bump to incorporate Swift Package Manager support, but the commit message gives almost no detail. Without seeing what actually changed inside the mobile_app_privacy library, we cannot tell whether this fixes a security issue, introduces one, or is purely a build/dependency change.
Lower-priorityrun ci dart format check soonerby Julian · 6d08391c · Sep 16, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Julian
run ci dart format check sooner
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
Security candidateformatting to make ci happyby Julian · bef9da69 · Sep 16, 2026 · 55 filesMessage 45 · ThinInformational 15Details
Commit message · Julian
formatting to make ci happy
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathauthentication path
AI analysis · Informational 15/100
This commit is purely a code-formatting cleanup. It changes whitespace, line breaks, and indentation across many Dart files so the project's automated style checks (CI) pass. No program logic, security behavior, or user-facing functionality was altered.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedios/xcode auto updatedby Julian · 712bd226 · Sep 16, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Julian
ios/xcode auto updated
28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit changes only the recorded dimensions of the iOS launch screen image in a storyboard file, from 512×373 to 512×512. It is a routine Xcode/auto-update style tweak with no visible security relevance.
AI review queuedupdate deps and generated files to make the machines happyby Julian · 6988214e · Sep 15, 2026 · 26 filesMessage 50 · ThinInformational 17Details
Commit message · Julian
update deps and generated files to make the machines happy
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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 17/100
This commit updates several software building blocks (dependencies) and the automatically generated code that matches them. The main change is moving the Isar database library from a pre-release test version (3.3.0-dev.2) to a stable release (3.3.2), along with related tools like build_runner, analyzer, hive_ce, and mockito. It also removes a workaround that pinned an older analyzer version. There is no direct evidence in the commit of a security vulnerability being fixed; it reads as routine maintenance to keep the project compatible with newer tooling.
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 14/100
This commit updates the Stack Wallet app to use a newer version of its Tor privacy plugin and switches to prebuilt native assets downloaded from GitHub. There is no direct evidence in the commit of a security vulnerability, but changing how sensitive privacy components are fetched and built is a security-relevant configuration change.
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 17/100
This commit updates dependency versions for Xelis cryptocurrency support in Stack Wallet. It switches from the upstream xelis-flutter-ffi library to a fork maintained by Cypher Stack (the same organization as the wallet), and bumps flutter_rust_bridge from 2.12.0 to 2.13.0. The commit title says 'xelis native assets,' suggesting feature work rather than a security fix. There is no direct evidence in the diff or commit message of a vulnerability or security issue.
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 25/100
This commit simply updates the version of an external library called 'epiccash' used by the Stack Wallet app. It changes which exact code snapshot and prebuilt download the app will use, but the commit message gives no details about why the update was made or whether it fixes any security problem. Without seeing the actual changes inside the epiccash library, we cannot tell if this is a routine update or a security patch.
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 6/100
This commit simply updates the version of an internal backup library (stack_wallet_backup) used by the Stack Wallet app. The change points the app to a newer commit of that library and bumps its declared version from 0.0.1 to 0.1.0. There is no information in the commit itself about what changed in the backup library or whether any of those changes relate to security.