{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-c7e881573ce0cc41", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83be1836dc3133be", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f107ddb62bff49fa", "name": "Very large file: src/i18n/index.ts (1005 lines)", "shortDescription": {"text": "Very large file: src/i18n/index.ts (1005 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 32 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 51 placeholder/mock markers across 28 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5aa73156141a259d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-lnaddress.mjs:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-lnaddress.mjs:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-884a6cd7340e9ac9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-bitrent-auth.mjs:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-bitrent-auth.mjs:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31689da3e2953ebb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-casino-auth.mjs:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-casino-auth.mjs:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6085e77e0b938510", "name": "Commented-code block (5 lines) in __mocks__/react-native-webview.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in __mocks__/react-native-webview.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b8e9f0f717ebbe9", "name": "Commented-code block (9 lines) in app/nfc.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in app/nfc.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91ed05d754f9b30e", "name": "Commented-code block (5 lines) in app/ark-connect.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/ark-connect.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d19d38fe069a99", "name": "Commented-code block (5 lines) in app/contentwall-studio.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/contentwall-studio.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3f4ec0928a3ccaa", "name": "Commented-code block (5 lines) in app/send.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/send.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3caf4fb6374e9099", "name": "Commented-code block (5 lines) in app/custody.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/custody.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75ad968838645d35", "name": "Commented-code block (5 lines) in app/contentwall.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/contentwall.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8043fe21eed2218", "name": "Commented-code block (6 lines) in src/wallet/lnbitsExtensions.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/wallet/lnbitsExtensions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84a5edbddea3cb0e", "name": "Commented-code block (5 lines) in src/wallet/sparkProvision.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/wallet/sparkProvision.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0799a3e4c0147adb", "name": "Commented-code block (6 lines) in src/wallet/backendPersist.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/wallet/backendPersist.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4ed601b98c04ba7", "name": "Commented-code block (9 lines) in src/wallet/contentwall.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/wallet/contentwall.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eaa16212ace9db63", "name": "Commented-code block (5 lines) in src/wallet/walletProvider.tsx:32", "shortDescription": {"text": "Commented-code block (5 lines) in src/wallet/walletProvider.tsx:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d01e90469b84a57f", "name": "Commented-code block (6 lines) in src/wallet/parse/decodeBolt11.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/wallet/parse/decodeBolt11.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b006a355cb019b89", "name": "Commented-code block (7 lines) in src/wallet/backends/arkBackend.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/wallet/backends/arkBackend.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7bef806b2ffaab1", "name": "Commented-code block (5 lines) in src/wallet/backends/custodialLnbits.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/wallet/backends/custodialLnbits.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b9bb42abcb18ec4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/wallet/backends/custodialLnbits.test.ts:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/wallet/backends/custodialLnbits.test.ts:1"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-400844be5c273441", "name": "Commented-code block (7 lines) in src/wallet/backends/nwcConfig.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/wallet/backends/nwcConfig.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe7deec14b58e2d8", "name": "Commented-code block (5 lines) in src/wallet/backends/custodialProvision.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/wallet/backends/custodialProvision.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46d4cc03492e82f4", "name": "Commented-code block (6 lines) in src/wallet/backends/selfHostedSpark.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/wallet/backends/selfHostedSpark.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a8e354824ab9b10", "name": "Commented-code block (5 lines) in src/sections/capabilities.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/capabilities.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dad4759d4dc1ff93", "name": "Commented-code block (5 lines) in src/sections/SectionHost.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/SectionHost.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fb0f187c430736d", "name": "Commented-code block (5 lines) in src/sections/SectionErrorBoundary.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/SectionErrorBoundary.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51fb7e44493df311", "name": "Commented-code block (5 lines) in src/sections/miners/RentMinerScreen.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/miners/RentMinerScreen.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-748b11a53fa2012f", "name": "Commented-code block (5 lines) in src/sections/miners/bitrentApi.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/miners/bitrentApi.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba9bd54108d357e8", "name": "Commented-code block (5 lines) in src/sections/casino/CasinoLobbyScreen.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/casino/CasinoLobbyScreen.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e78195f2994762d1", "name": "Commented-code block (9 lines) in src/sections/casino/casinoApi.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/sections/casino/casinoApi.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17655b3f0591cc16", "name": "Commented-code block (5 lines) in src/sections/casino/bridge.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/casino/bridge.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-868645eede6db2d9", "name": "Commented-code block (5 lines) in src/sections/markets/marketsConfig.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/markets/marketsConfig.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-144cf07ca1f00097", "name": "Commented-code block (8 lines) in src/sections/markets/betFlow.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/sections/markets/betFlow.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f25bd0d1af78900", "name": "Commented-code block (6 lines) in src/sections/markets/PlaceBetScreen.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/sections/markets/PlaceBetScreen.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3219121fe2951563", "name": "Commented-code block (5 lines) in src/sections/markets/lib/amm.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/markets/lib/amm.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab212a544391172b", "name": "Commented-code block (5 lines) in src/sections/markets/lib/mint.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/markets/lib/mint.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fef1da0b3c277db2", "name": "Commented-code block (5 lines) in src/sections/markets/lib/tips.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/sections/markets/lib/tips.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27fdf4cbc389ea16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/sections/markets/lib/tips.ts:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/sections/markets/lib/tips.ts:29"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d60bd3ff47cda026", "name": "Commented-code block (5 lines) in src/core/keys/oracleAttest.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/keys/oracleAttest.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0cca610fd353d356", "name": "Commented-code block (6 lines) in src/core/keys/backup.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/keys/backup.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82964c057760e517", "name": "Commented-code block (5 lines) in src/core/keys/nostrAuth.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/keys/nostrAuth.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb65e73e48a854c8", "name": "Commented-code block (5 lines) in src/core/keys/lnurlAuth.test.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/keys/lnurlAuth.test.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ba52dc21ede052d", "name": "Commented-code block (8 lines) in src/core/keys/vault.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/core/keys/vault.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-711191aa5baa56ea", "name": "Commented-code block (5 lines) in src/nfc/nfcService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/nfc/nfcService.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8697d1768dbbeab6", "name": "Commented-code block (5 lines) in src/nfc/hceService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/nfc/hceService.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-022e6399d1ef2beb", "name": "12 env vars used in code but missing from .env.example", "shortDescription": {"text": "12 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `EXPO_PUBLIC_ARK_NETWORK`, `EXPO_PUBLIC_ARK_SERVER`, `EXPO_PUBLIC_BITRENT_ORIGIN`, `EXPO_PUBLIC_BREEZ_API_KEY`, `EXPO_PUBLIC_BREEZ_NETWORK`, `EXPO_PUBLIC_CASINO_ORIGIN`, `EXPO_PUBLIC_HUNCH_MINT`, `EXPO_PUBLIC_HUNCH_ORACLE` + 4 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19631"}, "properties": {"repository": "Silexperience210/21pay-wallet", "repoUrl": "https://github.com/Silexperience210/21pay-wallet", "branch": "main"}, "results": [{"ruleId": "scanner-c7e881573ce0cc41", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e6c5e7b28b51f18", "scanner": "scanner-primary", "fingerprint": "c7e881573ce0cc41", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-build.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c7e881573ce0cc41", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f97e86d788ab992a", "scanner": "scanner-primary", "fingerprint": "c7e881573ce0cc41", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-build.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c7e881573ce0cc41", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fe869660bc41da4d", "scanner": "scanner-primary", "fingerprint": "c7e881573ce0cc41", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-build.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-c7e881573ce0cc41", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b8deb37ebbbe4ab7", "scanner": "scanner-primary", "fingerprint": "c7e881573ce0cc41", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-build.yml"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-83be1836dc3133be", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "207fb3c25b7f4154", "scanner": "scanner-primary", "fingerprint": "83be1836dc3133be", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-build.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f107ddb62bff49fa", "level": "note", "message": {"text": "Very large file: src/i18n/index.ts (1005 lines)"}, "properties": {"repobilityId": "091b88b7f3d68f92", "scanner": "scanner-primary", "fingerprint": "f107ddb62bff49fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "5d7585801cae2fc6", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ed5eacd39a9bfa40", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "5f4e53fca4b6cb65", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "ce85d6e831c90a61", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "18d9cbce9142d063", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "c45c42625aa06db6", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "347c182e6f8a7306", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-5aa73156141a259d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-lnaddress.mjs:17"}, "properties": {"repobilityId": "99bd2651eb2502d2", "scanner": "scanner-primary", "fingerprint": "5aa73156141a259d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-884a6cd7340e9ac9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-bitrent-auth.mjs:12"}, "properties": {"repobilityId": "26c24706c3ca2ff1", "scanner": "scanner-primary", "fingerprint": "884a6cd7340e9ac9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31689da3e2953ebb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/probe-casino-auth.mjs:17"}, "properties": {"repobilityId": "d081d0e03887d080", "scanner": "scanner-primary", "fingerprint": "31689da3e2953ebb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6085e77e0b938510", "level": "none", "message": {"text": "Commented-code block (5 lines) in __mocks__/react-native-webview.tsx:1"}, "properties": {"repobilityId": "6b7d14446ee0565e", "scanner": "scanner-primary", "fingerprint": "6085e77e0b938510", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b8e9f0f717ebbe9", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/nfc.tsx:1"}, "properties": {"repobilityId": "d820fb0760850cd8", "scanner": "scanner-primary", "fingerprint": "3b8e9f0f717ebbe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91ed05d754f9b30e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/ark-connect.tsx:1"}, "properties": {"repobilityId": "e86fdacc95d7fa4b", "scanner": "scanner-primary", "fingerprint": "91ed05d754f9b30e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17d19d38fe069a99", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/contentwall-studio.tsx:1"}, "properties": {"repobilityId": "9c9f98b708dc620c", "scanner": "scanner-primary", "fingerprint": "17d19d38fe069a99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3f4ec0928a3ccaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/send.tsx:1"}, "properties": {"repobilityId": "fa18f0eb21bc6908", "scanner": "scanner-primary", "fingerprint": "c3f4ec0928a3ccaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3caf4fb6374e9099", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/custody.tsx:1"}, "properties": {"repobilityId": "f2a38ed5d0540130", "scanner": "scanner-primary", "fingerprint": "3caf4fb6374e9099", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75ad968838645d35", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/contentwall.tsx:1"}, "properties": {"repobilityId": "28253587aa57e5b3", "scanner": "scanner-primary", "fingerprint": "75ad968838645d35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8043fe21eed2218", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/wallet/lnbitsExtensions.ts:1"}, "properties": {"repobilityId": "af2e51d29178e706", "scanner": "scanner-primary", "fingerprint": "f8043fe21eed2218", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84a5edbddea3cb0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/wallet/sparkProvision.ts:1"}, "properties": {"repobilityId": "47214d8366cf6a47", "scanner": "scanner-primary", "fingerprint": "84a5edbddea3cb0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0799a3e4c0147adb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/wallet/backendPersist.ts:3"}, "properties": {"repobilityId": "c06bfc1cfce305d6", "scanner": "scanner-primary", "fingerprint": "0799a3e4c0147adb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4ed601b98c04ba7", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/wallet/contentwall.ts:1"}, "properties": {"repobilityId": "24bd675618fff225", "scanner": "scanner-primary", "fingerprint": "f4ed601b98c04ba7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaa16212ace9db63", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/wallet/walletProvider.tsx:32"}, "properties": {"repobilityId": "e645aa86c8356b62", "scanner": "scanner-primary", "fingerprint": "eaa16212ace9db63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d01e90469b84a57f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/wallet/parse/decodeBolt11.ts:1"}, "properties": {"repobilityId": "e8ce13e1ab4ea23a", "scanner": "scanner-primary", "fingerprint": "d01e90469b84a57f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b006a355cb019b89", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/wallet/backends/arkBackend.ts:3"}, "properties": {"repobilityId": "faaf30e6b972c2f2", "scanner": "scanner-primary", "fingerprint": "b006a355cb019b89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7bef806b2ffaab1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/wallet/backends/custodialLnbits.ts:13"}, "properties": {"repobilityId": "0301c11b14676784", "scanner": "scanner-primary", "fingerprint": "d7bef806b2ffaab1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b9bb42abcb18ec4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/wallet/backends/custodialLnbits.test.ts:1"}, "properties": {"repobilityId": "ad3ae2cc4abf949f", "scanner": "scanner-primary", "fingerprint": "8b9bb42abcb18ec4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-400844be5c273441", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/wallet/backends/nwcConfig.ts:5"}, "properties": {"repobilityId": "d06e96529747ac4c", "scanner": "scanner-primary", "fingerprint": "400844be5c273441", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe7deec14b58e2d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/wallet/backends/custodialProvision.ts:1"}, "properties": {"repobilityId": "d55f29ed082b2395", "scanner": "scanner-primary", "fingerprint": "fe7deec14b58e2d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46d4cc03492e82f4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/wallet/backends/selfHostedSpark.ts:3"}, "properties": {"repobilityId": "74dec68de47581f8", "scanner": "scanner-primary", "fingerprint": "46d4cc03492e82f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a8e354824ab9b10", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/capabilities.ts:1"}, "properties": {"repobilityId": "91a2132df74b2052", "scanner": "scanner-primary", "fingerprint": "7a8e354824ab9b10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dad4759d4dc1ff93", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/SectionHost.tsx:1"}, "properties": {"repobilityId": "e021aa58f34f4a18", "scanner": "scanner-primary", "fingerprint": "dad4759d4dc1ff93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fb0f187c430736d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/SectionErrorBoundary.tsx:1"}, "properties": {"repobilityId": "16bbf748710ffc5f", "scanner": "scanner-primary", "fingerprint": "1fb0f187c430736d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51fb7e44493df311", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/miners/RentMinerScreen.tsx:1"}, "properties": {"repobilityId": "d6f39620dd2fbfcd", "scanner": "scanner-primary", "fingerprint": "51fb7e44493df311", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-748b11a53fa2012f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/miners/bitrentApi.ts:1"}, "properties": {"repobilityId": "51f8a8264c92d840", "scanner": "scanner-primary", "fingerprint": "748b11a53fa2012f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba9bd54108d357e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/casino/CasinoLobbyScreen.tsx:5"}, "properties": {"repobilityId": "1bfaca9a196a0401", "scanner": "scanner-primary", "fingerprint": "ba9bd54108d357e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e78195f2994762d1", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/sections/casino/casinoApi.ts:1"}, "properties": {"repobilityId": "4386b079f04687c3", "scanner": "scanner-primary", "fingerprint": "e78195f2994762d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17655b3f0591cc16", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/casino/bridge.ts:1"}, "properties": {"repobilityId": "44f7ccec3c09d931", "scanner": "scanner-primary", "fingerprint": "17655b3f0591cc16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-868645eede6db2d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/markets/marketsConfig.ts:1"}, "properties": {"repobilityId": "05a0b50f1044cf93", "scanner": "scanner-primary", "fingerprint": "868645eede6db2d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-144cf07ca1f00097", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/sections/markets/betFlow.ts:1"}, "properties": {"repobilityId": "69cd5856cc5cd2a6", "scanner": "scanner-primary", "fingerprint": "144cf07ca1f00097", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f25bd0d1af78900", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sections/markets/PlaceBetScreen.tsx:1"}, "properties": {"repobilityId": "987d713ee0d91694", "scanner": "scanner-primary", "fingerprint": "1f25bd0d1af78900", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3219121fe2951563", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/markets/lib/amm.ts:6"}, "properties": {"repobilityId": "ee43de5feecb5b18", "scanner": "scanner-primary", "fingerprint": "3219121fe2951563", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab212a544391172b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/markets/lib/mint.ts:1"}, "properties": {"repobilityId": "71ac8f711e1c0ec4", "scanner": "scanner-primary", "fingerprint": "ab212a544391172b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fef1da0b3c277db2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sections/markets/lib/tips.ts:1"}, "properties": {"repobilityId": "fc3e36c6e522677d", "scanner": "scanner-primary", "fingerprint": "fef1da0b3c277db2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27fdf4cbc389ea16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/sections/markets/lib/tips.ts:29"}, "properties": {"repobilityId": "dcc83326598f0a6e", "scanner": "scanner-primary", "fingerprint": "27fdf4cbc389ea16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d60bd3ff47cda026", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/keys/oracleAttest.ts:6"}, "properties": {"repobilityId": "324387c54df844c6", "scanner": "scanner-primary", "fingerprint": "d60bd3ff47cda026", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cca610fd353d356", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/keys/backup.ts:1"}, "properties": {"repobilityId": "1284d214f7b84794", "scanner": "scanner-primary", "fingerprint": "0cca610fd353d356", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82964c057760e517", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/keys/nostrAuth.ts:1"}, "properties": {"repobilityId": "d3cb201b0f8496df", "scanner": "scanner-primary", "fingerprint": "82964c057760e517", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb65e73e48a854c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/keys/lnurlAuth.test.ts:9"}, "properties": {"repobilityId": "12fb1a2070b72c5f", "scanner": "scanner-primary", "fingerprint": "bb65e73e48a854c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ba52dc21ede052d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/core/keys/vault.ts:1"}, "properties": {"repobilityId": "b5b9f580abe6c5f2", "scanner": "scanner-primary", "fingerprint": "5ba52dc21ede052d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-711191aa5baa56ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/nfc/nfcService.ts:1"}, "properties": {"repobilityId": "871c5a880a6e4ac3", "scanner": "scanner-primary", "fingerprint": "711191aa5baa56ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8697d1768dbbeab6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/nfc/hceService.ts:1"}, "properties": {"repobilityId": "4462e77e33987f6a", "scanner": "scanner-primary", "fingerprint": "8697d1768dbbeab6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-022e6399d1ef2beb", "level": "note", "message": {"text": "12 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "7bf4178327da75a2", "scanner": "scanner-primary", "fingerprint": "022e6399d1ef2beb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}