{"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-08364551cd6ed932", "name": "Stray `console.log` in TS/JS \u2014 fix-interactive-functionality.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 fix-interactive-functionality.js:7"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-63585c45e9394569", "name": "Stray `console.log` in TS/JS \u2014 server-local.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server-local.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7fb3981570c3d7f5", "name": "Stray `console.log` in TS/JS \u2014 test-lightning.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-lightning.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef40bc99bf45294d", "name": "Stray `console.log` in TS/JS \u2014 service-worker.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 service-worker.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-396c26cb101db056", "name": "Stray `console.log` in TS/JS \u2014 educational-modules/cbdc-vs-bitcoin.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 educational-modules/cbdc-vs-bitcoin.js:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00aef69c4c0df653", "name": "Stray `console.log` in TS/JS \u2014 api/index.ts:136", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/index.ts:136"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2c1bbcd0d9908ac", "name": "TODO/FIXME marker in shipping code \u2014 api/get-token.ts:83", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 api/get-token.ts:83"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa93dba80a6563e4", "name": "Stray `console.log` in TS/JS \u2014 api/create-order.js:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/create-order.js:91"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-090274cac047431e", "name": "Stray `console.log` in TS/JS \u2014 api/lightning/create-invoice.js:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/lightning/create-invoice.js:93"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5f0f944585d0e36", "name": "Stray `console.log` in TS/JS \u2014 api/auth/magic-link.ts:130", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/auth/magic-link.ts:130"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00dd18e87965156e", "name": "Stray `console.log` in TS/JS \u2014 api/auth/verify.ts:226", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/auth/verify.ts:226"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8476328b66020701", "name": "Stray `console.log` in TS/JS \u2014 api/entitlements/check.ts:162", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/entitlements/check.ts:162"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b7f5389854c53ad8", "name": "Stray `console.log` in TS/JS \u2014 api/entitlements/grant.ts:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/entitlements/grant.ts:61"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba4e1aa136dff154", "name": "Stray `console.log` in TS/JS \u2014 api/lib/email.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/lib/email.ts:83"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d1f30d376083e92", "name": "TODO/FIXME marker in shipping code \u2014 api/lib/db.ts:289", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 api/lib/db.ts:289"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f31c7437ab93d0c5", "name": "TODO/FIXME marker in shipping code \u2014 api/admin/payments.ts:83", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 api/admin/payments.ts:83"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-446bc710c859695d", "name": "Stray `console.log` in TS/JS \u2014 api/payments/checkout.ts:175", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/payments/checkout.ts:175"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27d770b6e1912712", "name": "Stray `console.log` in TS/JS \u2014 api/subscriptions/manage.ts:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/subscriptions/manage.ts:181"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ab272abf2fd876b", "name": "TODO/FIXME marker in shipping code \u2014 api/webhooks/stripe.ts:409", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 api/webhooks/stripe.ts:409"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-339ef84d6c8575bf", "name": "Stray `console.log` in TS/JS \u2014 api/webhooks/stripe.ts:178", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/stripe.ts:178"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d7e7d0d55dc2a040", "name": "Stray `console.log` in TS/JS \u2014 api/webhooks/btcpay.ts:227", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/btcpay.ts:227"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-701b55e8e67db5f2", "name": "Stray `console.log` in TS/JS \u2014 api/webhooks/zaprite.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/zaprite.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7c0aeea2d3da5da", "name": "Stray `console.log` in TS/JS \u2014 api/webhooks/alby.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/alby.js:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4acca9e6eb7a7f10", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/mcp-client.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/mcp-client.js:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7462afa4d2854055", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agent-bridge.js:350", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agent-bridge.js:350"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-175e91475e584a28", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/perf-seo/run.js:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/perf-seo/run.js:132"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ada655b60cff17e", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/security/run.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/security/run.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fae97cf9cb29e8ab", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/planner/run.js:216", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/planner/run.js:216"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17b89015cd47fdf5", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/analytics/run.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/analytics/run.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e295dd3d510c48ba", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/dx/run.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/dx/run.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8308dff573b8231", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/content/run.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/content/run.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9daa457d8af68aa", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/curriculum/run.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/curriculum/run.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9965fa6f7d012ab0", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/a11y/run.js:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/a11y/run.js:112"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4fe1aedb3e30ccb1", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/publish-reports.js:299", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/publish-reports.js:299"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f642cd39514b41c", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-lhci.js:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-lhci.js:54"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f9afd888a36a9bf", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-fk.js:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-fk.js:47"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3276fa4325ec9696", "name": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-axe.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-axe.js:86"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58b17d1f5ddd37c9", "name": "Stray `console.log` in TS/JS \u2014 mcp/auditors/content-generator.js:417", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/auditors/content-generator.js:417"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-049cc685f118173d", "name": "Stray `console.log` in TS/JS \u2014 blockchain-integration/checkonchain-metrics.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 blockchain-integration/checkonchain-metrics.js:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-66291e27b00bda9f", "name": "Stray `console.log` in TS/JS \u2014 js/email-capture.js:394", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/email-capture.js:394"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-04da2df21e37ccf9", "name": "Stray `console.log` in TS/JS \u2014 js/checkout.js:615", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/checkout.js:615"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f7d0260a23b15ba", "name": "Stray `console.log` in TS/JS \u2014 js/mobile-interactions.js:601", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/mobile-interactions.js:601"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-412d2bc64760073c", "name": "Stray `console.log` in TS/JS \u2014 js/module-gate-subdomain.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/module-gate-subdomain.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-523486a685835fd6", "name": "Icon-only button without accessible name \u2014 js/onboarding-flow.js:285", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/onboarding-flow.js:285"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6639a98c0adb2ce", "name": "Stray `console.log` in TS/JS \u2014 js/onboarding-flow.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/onboarding-flow.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cc17e849e9a9baf7", "name": "Stray `console.log` in TS/JS \u2014 js/script.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/script.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7078b9c858a2b09b", "name": "Stray `console.log` in TS/JS \u2014 js/module-gate.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/module-gate.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95d8ca4c748c7552", "name": "Stray `console.log` in TS/JS \u2014 js/demo-lock-subdomain.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/demo-lock-subdomain.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4efe54533221a75c", "name": "Stray `console.log` in TS/JS \u2014 js/dynamic-content.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/dynamic-content.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c57cf3db2632ccb8", "name": "Stray `console.log` in TS/JS \u2014 js/mcp-service.js:559", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/mcp-service.js:559"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e11a4d7d08be5ff", "name": "Icon-only button without accessible name \u2014 js/mcp-content-loader.js:169", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/mcp-content-loader.js:169"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-209b1b00f963fb16", "name": "Stray `console.log` in TS/JS \u2014 js/mcp-content-loader.js:368", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/mcp-content-loader.js:368"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-450c8194b7101cc8", "name": "Stray `console.log` in TS/JS \u2014 js/config.js:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/config.js:108"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f632d83e4e1b9a20", "name": "Stray `console.log` in TS/JS \u2014 js/subdomain-access-control.js:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/subdomain-access-control.js:110"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-522020b403f13200", "name": "Stray `console.log` in TS/JS \u2014 js/learning-path.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/learning-path.js:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df99d5303cbb1ddd", "name": "Stray `console.log` in TS/JS \u2014 js/ab-home.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/ab-home.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cfaf9dda5383f38", "name": "Stray `console.log` in TS/JS \u2014 js/analytics.js:382", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/analytics.js:382"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba4273c2d035c2d1", "name": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-reliable.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-reliable.js:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b7f0bcdc2b8480e", "name": "Stray `console.log` in TS/JS \u2014 js/payment-access-control.js:465", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/payment-access-control.js:465"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9171d6781f87a2b7", "name": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-simple.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-simple.js:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f95d8bd39b9f126", "name": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-fallback.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-fallback.js:69"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-07f48ae0e1fedf24", "name": "Stray `console.log` in TS/JS \u2014 js/navigation-context.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/navigation-context.js:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3b89575e85dc1a3", "name": "Stray `console.log` in TS/JS \u2014 js/progress-manager.js:1232", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/progress-manager.js:1232"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28b8293dbb9050a0", "name": "Stray `console.log` in TS/JS \u2014 js/gemini-service.js:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/gemini-service.js:224"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba2b6bc6d4df8966", "name": "Stray `console.log` in TS/JS \u2014 js/utils/event-tracking.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/event-tracking.ts:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1c239f70c1eab5a", "name": "Stray `console.log` in TS/JS \u2014 js/utils/ab-testing.ts:222", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/ab-testing.ts:222"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-67920a504818a60e", "name": "Stray `console.log` in TS/JS \u2014 js/utils/white-label.ts:363", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/white-label.ts:363"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d50320ccb1fb613", "name": "Stray `console.log` in TS/JS \u2014 js/utils/certification-engine.ts:468", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/certification-engine.ts:468"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d7caab15cf8343a1", "name": "Stray `console.log` in TS/JS \u2014 js/utils/logger.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/logger.ts:85"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6815bcefcf4f7ca7", "name": "Stray `console.log` in TS/JS \u2014 js/widgets/api-handler.js:506", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/widgets/api-handler.js:506"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e29f375237cf895", "name": "Stray `console.log` in TS/JS \u2014 scripts/replace-emojis.js:187", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replace-emojis.js:187"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c47db8bc032847a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-operating-risk.js:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-operating-risk.js:156"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4be851c36f338e89", "name": "TODO/FIXME marker in shipping code \u2014 components/content-lock.js:323", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 components/content-lock.js:323"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-760e307c77057050", "name": "Stray `console.log` in TS/JS \u2014 interactive-demos/mining-simulator/mining-enhanced.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/mining-simulator/mining-enhanced.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ab91ebeaadf3bd6", "name": "Stray `console.log` in TS/JS \u2014 interactive-demos/address-format-explorer/main.js:442", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/address-format-explorer/main.js:442"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-af149a819e550d46", "name": "Stray `console.log` in TS/JS \u2014 interactive-demos/transaction-builder/transaction-builder-enhanced.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/transaction-builder/transaction-builder-enhanced.js:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e3533b214ffab75", "name": "Stray `console.log` in TS/JS \u2014 interactive-demos/wallet-workshop/wallet-workshop.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/wallet-workshop/wallet-workshop.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1db809aa8bd4ce2", "name": "Stray `console.log` in TS/JS \u2014 interactive-demos/bitcoin-sovereign-game/bitcoin-sovereign-game.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/bitcoin-sovereign-game/bitcoin-sovereign-game.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9318eed7d24f230f", "name": "Stray `console.log` in TS/JS \u2014 ai-agents/intelligent-agents.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 ai-agents/intelligent-agents.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3108f473d288222e", "name": "Stray `console.log` in TS/JS \u2014 ai-agents/advanced-agents.js:213", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 ai-agents/advanced-agents.js:213"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e62d2de39c0bab9", "name": "Stray `console.log` in TS/JS \u2014 tools/domain-monitor.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/domain-monitor.js:83"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8258ac55753d03a8", "name": "Stray `console.log` in TS/JS \u2014 tools/seo-optimizer.js:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/seo-optimizer.js:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-027d1942ba0ea950", "name": "Stray `console.log` in TS/JS \u2014 tools/check-unique-ids.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/check-unique-ids.js:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f5c13c61395e60d", "name": "Stray `console.log` in TS/JS \u2014 tools/test-tenants.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/test-tenants.js:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b094c50927048ca9", "name": "Stray `console.log` in TS/JS \u2014 tools/domain-test-suite.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/domain-test-suite.js:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95b0b00789a02ad1", "name": "Stray `console.log` in TS/JS \u2014 tools/deploy-automation.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/deploy-automation.js:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91c703525c018066", "name": "Stray `console.log` in TS/JS \u2014 tools/domain-config.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/domain-config.js:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9372d6930d50d530", "name": "Stray `console.log` in TS/JS \u2014 tools/security-headers.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/security-headers.js:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a5eb1dc69a1ab1d", "name": "Stray `console.log` in TS/JS \u2014 tools/content-validator.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/content-validator.js:39"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f00e533e32992dc", "name": "Stray `console.log` in TS/JS \u2014 tools/bundle-assets.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/bundle-assets.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6dc9062ecf618d2", "name": "Stray `console.log` in TS/JS \u2014 tools/site-enhancer.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/site-enhancer.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ebb1c047033f13f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in emergency-kit.html:2176", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in emergency-kit.html:2176"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d35022841a0e18c8", "name": "Insecure pattern 'direct_innerhtml_assignment' in pricing.html:975", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pricing.html:975"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e407c754be783776", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:4020", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:4020"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9414648ba17d29c", "name": "Insecure pattern 'direct_innerhtml_assignment' in glossary.html:606", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in glossary.html:606"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce8e905b4e4e6bcf", "name": "Insecure pattern 'cors_wildcard' in server-local.js:51", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in server-local.js:51"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61ef0de83180ea86", "name": "Insecure pattern 'direct_innerhtml_assignment' in account.html:517", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in account.html:517"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c657e4c220fb0f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in lock-demos.cjs:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lock-demos.cjs:29"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14870068d4460e1b", "name": "Insecure pattern 'direct_innerhtml_assignment' in multisig-security-demo.html:2263", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in multisig-security-demo.html:2263"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c682cc6f1e3bec4", "name": "Insecure pattern 'direct_innerhtml_assignment' in certificates/verify_certificate.html:189", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in certificates/verify_certificate.html:189"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de6f5488d8a9b88a", "name": "Insecure pattern 'direct_innerhtml_assignment' in weekly/index.html:537", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in weekly/index.html:537"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8afd5f7d9836ba72", "name": "Insecure pattern 'insert_adjacent_html' in weekly/index.html:544", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in weekly/index.html:544"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d71f71c566a8747", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/semana-8-2026-05/semana-8.previous.html:590", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/semana-8-2026-05/semana-8.previous.html:590"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21dc58f66addb7d1", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/interactive-demos/wallet-workshop-interactive.html:163", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/interactive-demos/wallet-workshop-interactive.html:163"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f33d8091c64d6ee", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/semana-5-options-2026-05/semana-5.previous.html:521", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/semana-5-options-2026-05/semana-5.previous.html:521"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e1b7d259385ce99", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-8.previous.html:604", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-8.previous.html:604"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa3cae0dfa73ab01", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-6.previous.html:547", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-6.previous.html:547"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4cacf55e0b0f1604", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-3.previous.html:741", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-3.previous.html:741"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f7e8b6f81fd786f", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-1.previous.html:1651", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-1.previous.html:1651"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c017cbc186288a74", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-5.previous.html:528", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-5.previous.html:528"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7393cb4536538a55", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-4.previous.html:420", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-4.previous.html:420"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4cdc4b7d3130e35", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-2.previous.html:597", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-2.previous.html:597"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f856589be31505a", "name": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-7.previous.html:584", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-7.previous.html:584"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-50c9a902551a0119", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/bitcoin-capital/bitcoin-backed-mortgages.html:1477", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/bitcoin-capital/bitcoin-backed-mortgages.html:1477"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d5002d2e19d15d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/foundational-layer-thesis/dashboard.html:218", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/foundational-layer-thesis/dashboard.html:218"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88ecfdac0a441fe8", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/time-preference-fundamentals.html:819", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/time-preference-fundamentals.html:819"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0b2ae8db2e0156c", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/sound-money-theory.html:735", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/sound-money-theory.html:735"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cfe682b321e13bf9", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/economic-calculation-problem.html:803", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/economic-calculation-problem.html:803"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b00474bf0d26618", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/praxeology-human-action.html:824", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/praxeology-human-action.html:824"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c88aba25b3210a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/sovereign-tools/multisig-guide.html:208", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/sovereign-tools/multisig-guide.html:208"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c48b9cec4d24478f", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/digital-scarcity.html:516", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/digital-scarcity.html:516"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6caeba51c1aea8a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/index.html:2076", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/index.html:2076"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-224fa320d1936bd1", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/why-money-fails.html:450", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/why-money-fails.html:450"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9e22901933edb80", "name": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/original-question-everything.html:2073", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/original-question-everything.html:2073"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0210fdfb2251467a", "name": "Insecure pattern 'node_child_process' in mcp-integration/agents/perf-seo/run.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp-integration/agents/perf-seo/run.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33b78bfd04a02056", "name": "Insecure pattern 'node_child_process' in mcp-integration/agents/planner/run.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp-integration/agents/planner/run.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5dacd4a437318e72", "name": "Insecure pattern 'node_child_process' in mcp-integration/agents/a11y/run.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp-integration/agents/a11y/run.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03e196c7e776b102", "name": "Insecure pattern 'node_child_process' in mcp-integration/tools/run-lhci.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp-integration/tools/run-lhci.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-523c6d1c2f668535", "name": "Insecure pattern 'local_storage_auth_token' in js/stripe-checkout.js:244", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in js/stripe-checkout.js:244"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5de3300567ad97e6", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/email-capture.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/email-capture.js:213"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b51ae804a684a25", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/site-nav.js:126", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/site-nav.js:126"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2471c2578f2328a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/checkout.js:135", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/checkout.js:135"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93295c824c94e5f1", "name": "Insecure pattern 'local_storage_auth_token' in js/checkout.js:614", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in js/checkout.js:614"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d4f99667d0bade5", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/mobile-interactions.js:544", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mobile-interactions.js:544"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58e2103d23a5d1e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/security-utils.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/security-utils.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91460f0e7e7c8427", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/module-gate-subdomain.js:312", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/module-gate-subdomain.js:312"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b03f8b770499a96", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/onboarding-flow.js:273", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/onboarding-flow.js:273"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e48724b4432f4960", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/module-gate.js:260", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/module-gate.js:260"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b1f1f55d1e94221", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/learning-path-navigator.js:222", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/learning-path-navigator.js:222"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20325a07820f9b66", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/demo-lock-subdomain.js:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/demo-lock-subdomain.js:90"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-614581bdf913b047", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/tutor-loader.js:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tutor-loader.js:92"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74f8c268bd894066", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/dynamic-content.js:429", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/dynamic-content.js:429"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e22460ff3387fd16", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/referral-program.js:179", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/referral-program.js:179"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-837652226df2c511", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/hero-cta.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/hero-cta.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b5142d3c5c2090fb", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/mcp-service.js:482", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mcp-service.js:482"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ade4334fdec4511e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/reflect-widget.js:868", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/reflect-widget.js:868"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-57894a4e4d1a1fda", "name": "Insecure pattern 'local_storage_auth_token' in js/membership-btcpay.js:53", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in js/membership-btcpay.js:53"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35b8b942ceee55e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/mcp-content-loader.js:165", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mcp-content-loader.js:165"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-50566b2b6127d029", "name": "Insecure pattern 'insert_adjacent_html' in js/mcp-content-loader.js:565", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in js/mcp-content-loader.js:565"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-225f7743c571c34c", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/smart-onboarding.js:109", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/smart-onboarding.js:109"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-375ff488c95fdc18", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/progress-momentum.js:52", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/progress-momentum.js:52"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ed42272a91b2f2d", "name": "Insecure pattern 'document_write' in js/youth-engine.js:208", "shortDescription": {"text": "Insecure pattern 'document_write' in js/youth-engine.js:208"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56aa31561b25489d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/youth-engine.js:110", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/youth-engine.js:110"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6506f9e47b01e38c", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/monetary-systems-details.js:367", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/monetary-systems-details.js:367"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c5350418752293e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/membership-gate.js:340", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/membership-gate.js:340"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10a46fb803f620f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/i18n.js:315", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/i18n.js:315"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3588ffbdaac35b7", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/demo-cta-footer.js:130", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/demo-cta-footer.js:130"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fbbfc74c8e3bdec", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/subdomain-access-control.js:309", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/subdomain-access-control.js:309"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73d85651a919f517", "name": "Insecure pattern 'local_storage_auth_token' in js/subdomain-access-control.js:387", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in js/subdomain-access-control.js:387"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2c4dddce8439831", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/learning-path.js:400", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/learning-path.js:400"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-efc8374e4af00711", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/mobile-menu.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mobile-menu.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcf2ddbdac481eb2", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/gemini-tutor-ui.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gemini-tutor-ui.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ebb8ac6ac95805f6", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/module-progress.js:123", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/module-progress.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00618203784eff6b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/safety-banner.js:50", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/safety-banner.js:50"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce6fd6c62fbde2f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/safety-assessment.js:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/safety-assessment.js:124"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a2f3c03cb2bdbd7", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/lab-guide.js:1318", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/lab-guide.js:1318"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a11233a7c582e016", "name": "Insecure pattern 'insert_adjacent_html' in js/lab-guide.js:1295", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in js/lab-guide.js:1295"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-148bc1e401cad7bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/payment-access-control.js:303", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/payment-access-control.js:303"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aff46b3998af64ab", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/bitcoin-context.js:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/bitcoin-context.js:99"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b5dd68e1461d72b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/navigation-context.js:165", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/navigation-context.js:165"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa2ebbc60da03e2f", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/tip-cta.js:298", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tip-cta.js:298"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c72019f65e68f67a", "name": "Insecure pattern 'local_storage_auth_token' in js/utils/ab-testing.ts:156", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in js/utils/ab-testing.ts:156"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-62f7fcc257395be1", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/utils/certification-engine.ts:646", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/utils/certification-engine.ts:646"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a008ca41276f3acc", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/network-stats.js:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/network-stats.js:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2cad9fcb14b170d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/news-ticker.js:83", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/news-ticker.js:83"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-05ee5c7dcf4f7110", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/quiz.js:118", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/quiz.js:118"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a93dc7f60ed561b1", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/live-market-data.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/live-market-data.js:114"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f681e998099cec7", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/replace-emojis.js:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/replace-emojis.js:102"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-169898fa3313d837", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/replace-emojis.cjs:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/replace-emojis.cjs:93"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83054d8e56436c70", "name": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-06/index.html:600", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-06/index.html:600"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f7097742aa8cfe2", "name": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-03/index.html:558", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-03/index.html:558"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e39a3a6560e99e90", "name": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-01/index.html:568", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-01/index.html:568"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7fe6765edb5eb9e", "name": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-07/index.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-07/index.html:557"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16294c7091aad203", "name": "Insecure pattern 'direct_innerhtml_assignment' in components/content-lock.js:140", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/content-lock.js:140"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-051d72353200c710", "name": "Insecure pattern 'direct_innerhtml_assignment' in ai-tutors/index.html:368", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-tutors/index.html:368"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31668b4861c9aa5c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign-journey-intro.html:811", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign-journey-intro.html:811"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ce38eba554a8e19", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/index.html:897", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/index.html:897"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-848d66ad9c5fd638", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-1.html:1068", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-1.html:1068"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aca893883afc7cf8", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-2.html:1925", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-2.html:1925"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-995da276996036ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/index.html:489", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/index.html:489"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86158603ab4107c8", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-3.html:1047", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-3.html:1047"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3d0a9501a2f8273", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-1.html:949", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-1.html:949"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4865e968944f5474", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/fees-utxo-guide.html:572", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/fees-utxo-guide.html:572"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1af064aa8e590bb6", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/proofs-not-promises.html:573", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/proofs-not-promises.html:573"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-444897bd719503cf", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/scam-defense.html:591", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/scam-defense.html:591"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5fc9602104325a4c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/alternatives-to-bitcoin.html:1113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/alternatives-to-bitcoin.html:1113"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4669b5bdf5a22383", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-2.html:793", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-2.html:793"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86aecaf8f087700e", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/index.html:589", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/index.html:589"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a46787b7dd53b5a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-3.html:949", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-3.html:949"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f99c2e10198f29ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/collaborative-security.html:777", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/collaborative-security.html:777"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8120d6f0a5e24a80", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-1.html:949", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-1.html:949"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-81657baa39a9dcb7", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-2.html:863", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-2.html:863"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-015737c8c0ab8821", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/index.html:486", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/index.html:486"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1ebd8454e7a39b9", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-3.html:837", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-3.html:837"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cbcb58158ecb1857", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-1.html:1558", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-1.html:1558"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19c4d539cd6ed2dd", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-2.html:1626", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-2.html:1626"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e455d7541393ae47", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/index.html:538", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/index.html:538"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c3c6256f123d831", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-3.html:2226", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-3.html:2226"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa80d71a15088feb", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/index.html:938", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/index.html:938"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d90aebefc642c42", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-1.html:1135", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-1.html:1135"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-473091f7be5c9be8", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-2.html:1198", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-2.html:1198"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d75631b50ef6a6a", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/index.html:501", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/index.html:501"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4e6601043c33e02", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-3.html:1170", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-3.html:1170"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e66c3bcc48eda3b", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-1.html:762", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-1.html:762"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a7db22eb7bdb8fa", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-2.html:824", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-2.html:824"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adf2a4574e256518", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/index.html:551", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/index.html:551"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2562f19115b9121a", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-3.html:864", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-3.html:864"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93c587ae39fa9c9b", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-1.html:913", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-1.html:913"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73db5d849a72a6a0", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-2.html:881", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-2.html:881"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-212df639a3b26050", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/index.html:636", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/index.html:636"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13cd6ebe94204cc2", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-3.html:1363", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-3.html:1363"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b94a7b811f71179f", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-1.html:2184", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-1.html:2184"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cbab00511997f3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-2-5.html:721", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-2-5.html:721"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bfb0ec2e6e46ad55", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-2.html:1439", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-2.html:1439"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f92eb784901cfca", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/index.html:518", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/index.html:518"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0e41f993f18941d", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-3.html:1291", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-3.html:1291"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa65198880a9f37f", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/deep-dives/money-creation.html:927", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/deep-dives/money-creation.html:927"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9409eac43e9c4a88", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/deep-dives/fractional-reserve.html:478", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/deep-dives/fractional-reserve.html:478"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab1f4b59d0c0b90f", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-1.html:2185", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-1.html:2185"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db604728837e9e69", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-2.html:1440", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-2.html:1440"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40d39fb6b81906c0", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-3.html:1292", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-3.html:1292"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10b240203cbbc2c0", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/index.html:438", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/index.html:438"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ede9c19df23e62be", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-2/module-4.html:532", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-2/module-4.html:532"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d90a3921cd14eba7", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-2/module-5.html:339", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-2/module-5.html:339"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de2ea60e5167382b", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-3/module-6.html:458", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-3/module-6.html:458"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3647cfd582c577fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-3/module-7.html:472", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-3/module-7.html:472"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ee70806ffd68736", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-1.html:777", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-1.html:777"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d7c03e16934d3f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-2.html:437", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-2.html:437"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5451b1a0449e5078", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-3.html:519", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-3.html:519"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-550da668cca5e81d", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/skeptic/index.html:633", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/skeptic/index.html:633"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d87a2880b54ee6ad", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/skeptic/stage-1/index.html:920", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/skeptic/stage-1/index.html:920"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-caae2e6e64500aaf", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/index.html:695", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/index.html:695"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aff4cab2e1ffff58", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-5-security.html:520", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-5-security.html:520"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fad424c7501fb9ff", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/bank-friction.html:358", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/bank-friction.html:358"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-970a4aaa2568632c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-6-lightning.html:504", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-6-lightning.html:504"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a30f5275eff82312", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-7-economics.html:285", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-7-economics.html:285"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4924768ee64711aa", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-3/module-8-privacy-tax.html:352", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-3/module-8-privacy-tax.html:352"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e40bf3d2f94570c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-3/module-9-real-life.html:377", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-3/module-9-real-life.html:377"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b7769c395066474", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-1.html:1087", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-1.html:1087"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a4f9355dae6e4c4e", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-2.html:473", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-2.html:473"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98b9e48f34650b1c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-3.html:525", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-3.html:525"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3457f61104ec4650", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-4.html:637", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-4.html:637"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d13a2ff4ffaadb7f", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/index.html:1478", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/index.html:1478"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a38a36bf90fa50e", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-1.html:1457", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-1.html:1457"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7722b61a45516671", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-2.html:861", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-2.html:861"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55e3acf77abfce94", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/index.html:627", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/index.html:627"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adec2bd7b99bcfe0", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-3.html:808", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-3.html:808"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-214379ddad692bb7", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-4.html:1048", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-4.html:1048"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d0701ff6113b61e", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-1.html:1064", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-1.html:1064"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da70a926e8478d80", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-2.html:1158", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-2.html:1158"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64eefc8d0afb55f4", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/index.html:584", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/index.html:584"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87ebd6b440b1d19f", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-3.html:1342", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-3.html:1342"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b25c328fda59a9bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-1.html:1057", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-1.html:1057"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fb57534a0fd320ee", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-2.html:1242", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-2.html:1242"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e56a3153c4dd3b6", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/index.html:632", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/index.html:632"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7559acfc5388ad33", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-3.html:1387", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-3.html:1387"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5dfa54ad92e558e6", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-1.html:762", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-1.html:762"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a4c7ebd2b718be0", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-2.html:504", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-2.html:504"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0a912d28ddf2f08", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/index.html:584", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/index.html:584"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b51f0efba211da1", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-3.html:672", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-3.html:672"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6bcb1ab2d58baaf", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/index.html:908", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/index.html:908"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e790e1a605ce93f", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-1.html:959", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-1.html:959"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edc85842f4fefa86", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-2.html:848", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-2.html:848"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ced8c282a9560035", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/index.html:283", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/index.html:283"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34239892dcafc081", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-3.html:1022", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-3.html:1022"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8cb20dd336c5404", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-1.html:783", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-1.html:783"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94163aefb6c60ebd", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-2.html:950", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-2.html:950"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbcf552bfc997fb8", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/index.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/index.html:288"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c7bee560659f5ab", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-3.html:1119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-3.html:1119"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd04544975daeec4", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-1.html:1098", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-1.html:1098"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23a8f411a09d9c79", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-2.html:1052", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-2.html:1052"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5432cc5e3b775606", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/index.html:236", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/index.html:236"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edef6eb65f6ca3db", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-3.html:1095", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-3.html:1095"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93a821870155919c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-1.html:899", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-1.html:899"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2af7ec9e420d2b6c", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-2.html:991", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-2.html:991"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbf68b114554da99", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/index.html:209", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/index.html:209"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6cba3b9227b45a1", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-3.html:1116", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-3.html:1116"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b279edb8e0ba577", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-1.html:921", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-1.html:921"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4f9c47c4c503509", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-2.html:877", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-2.html:877"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd0c403070bac021", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/index.html:289", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/index.html:289"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03c895a58d8df374", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-3.html:898", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-3.html:898"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a44cd03ed4e0ee88", "name": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/capstone/index.html:382", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/capstone/index.html:382"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6b53f4cf8a83202", "name": "Insecure pattern 'direct_innerhtml_assignment' in assets/snippets/kit-checkout.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in assets/snippets/kit-checkout.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-334b7cd6475b4a15", "name": "Insecure pattern 'direct_innerhtml_assignment' in challenges/index.html:307", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in challenges/index.html:307"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b776a1dc7b9c1e66", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-ira-decision-tool.html:1512", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-ira-decision-tool.html:1512"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04df61b0e98654f6", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/security-risk-simulator.html:1119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/security-risk-simulator.html:1119"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a984c0b7e352a676", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/index.html:885", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/index.html:885"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-820b2013e5bd4fc0", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-simulator/index.html:735", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-simulator/index.html:735"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-611b6cb966ca9263", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-simulator/mining-enhanced.js:239", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-simulator/mining-enhanced.js:239"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce9526818c12c991", "name": "Insecure pattern 'insert_adjacent_html' in interactive-demos/mining-simulator/mining-enhanced.js:89", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in interactive-demos/mining-simulator/mining-enhanced.js:89"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9c89cbca73edaefa", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-vs-banking/index.html:768", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-vs-banking/index.html:768"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-067db674d74a7f30", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/savings-disappear-scenario/index.html:913", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/savings-disappear-scenario/index.html:913"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f17f0f17e688ec57", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/security-dojo-enhanced/index.html:1728", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/security-dojo-enhanced/index.html:1728"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c8459c64f564c8d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/index.html:593", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/index.html:593"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d1242fd7e3a06bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/enhancements.html:331", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/enhancements.html:331"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5968e15884c564bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/index-backup.html:673", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/index-backup.html:673"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29365234731ad879", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/fee-market.js:250", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/fee-market.js:250"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-235132fd13cc034d", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/main.js:135", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/main.js:135"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d7631ebf904ffdb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/mempool-live.js:73", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/mempool-live.js:73"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7c990f29d90ef88", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/ledger-keeper-dilemma/index.html:710", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/ledger-keeper-dilemma/index.html:710"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-57a801dd7bb364fe", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-price-timeline/index.html:1142", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-price-timeline/index.html:1142"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf891eee678916ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-security-workshop/index.html:1935", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-security-workshop/index.html:1935"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fe5e487f09d6969", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/stock-to-flow/index.html:909", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/stock-to-flow/index.html:909"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cc9c418dc2b4957", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/fee-master-tool/index.html:651", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/fee-master-tool/index.html:651"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82dcaa89205bdfc8", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/difficulty-calculator/index.html:603", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/difficulty-calculator/index.html:603"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ee9b01a7d8b3606", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/address-format-explorer/main.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/address-format-explorer/main.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a78c3dd291dbbd2", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-economics-demo/index.html:579", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-economics-demo/index.html:579"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fab463e371f4a3ba", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/consensus-game/index.html:772", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/consensus-game/index.html:772"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c835f1a483552807", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/money-properties-comparison/index.html:558", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/money-properties-comparison/index.html:558"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be0d994e515afaa7", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-supply-schedule/index.html:993", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-supply-schedule/index.html:993"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-011ffb2864f7092c", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/account-freeze-locked-out/index.html:947", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/account-freeze-locked-out/index.html:947"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96c34c0138b8fe74", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/building-the-chain-demo/index.html:289", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/building-the-chain-demo/index.html:289"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4d451ac4df2de93", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/inflation-impact-calculator/index.html:722", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/inflation-impact-calculator/index.html:722"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af4cf9afb2706385", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/energy-bucket/index.html:942", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/energy-bucket/index.html:942"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c270b2c7116b7aeb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/transaction-builder/transaction-builder-enhanced.js:", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/transaction-builder/transaction-builder-enhanced.js:322"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0849a4fbf118e6b7", "name": "Insecure pattern 'insert_adjacent_html' in interactive-demos/transaction-builder/transaction-builder-enhanced.js:76", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in interactive-demos/transaction-builder/transaction-builder-enhanced.js:76"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bedf96f7f990835e", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/transaction-builder/index.html:464", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/transaction-builder/index.html:464"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a242023b5a22ed52", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/double-spending-demo/index.html:643", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/double-spending-demo/index.html:643"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6fe5f3d2c2064237", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/coinjoin-simulator/main.js:85", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/coinjoin-simulator/main.js:85"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8341434d083c9933", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/sat-stacking-calculator/index.html:619", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/sat-stacking-calculator/index.html:619"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9939845678c5acfa", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-dca-time-machine/index.html:822", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-dca-time-machine/index.html:822"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-088dce522ae3cb05", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-workshop/wallet-workshop.js:312", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-workshop/wallet-workshop.js:312"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9bf60cfd5aeba9c", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-workshop/index.html:1176", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-workshop/index.html:1176"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbe8f4f2d9b8d72b", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/computational-puzzles-demo/index.html:455", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/computational-puzzles-demo/index.html:455"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90f5c86b6276c2eb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/multisig-setup-wizard/main.js:89", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/multisig-setup-wizard/main.js:89"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-917e4e98727265f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/multisig-setup-wizard/distribution-planner.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/multisig-setup-wizard/distribution-planner.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0349da945ffa690a", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/lightning-network-demo/index.html:988", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/lightning-network-demo/index.html:988"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75e0a30ea3393403", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/node-setup-sandbox/index.html:1661", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/node-setup-sandbox/index.html:1661"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-498bf9a24b0524e2", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/onramp-chooser/onramp-logic.js:32", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/onramp-chooser/onramp-logic.js:32"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7508b1e38ec567b7", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/network-growth-demo/index.html:845", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/network-growth-demo/index.html:845"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fb7f74e0eecf6fac", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-layers-map/index.html:1251", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-layers-map/index.html:1251"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0585c00d4588bd58", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/time-chain-explorer/index.html:517", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/time-chain-explorer/index.html:517"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d25ad87fee3f4797", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-unit-converter/index.html:878", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-unit-converter/index.html:878"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b409ffdd68bced6", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/sovereign-vault/js/app.js:513", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/sovereign-vault/js/app.js:513"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a703a6f26882cfe4", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/debt-crisis/index.html:771", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/debt-crisis/index.html:771"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-045d03d6dfc15c9a", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/time-preference-explorer/index.html:1333", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/time-preference-explorer/index.html:1333"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7189d4290d4f14cb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-sovereign-game/index.html:1470", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-sovereign-game/index.html:1470"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-610c3799c68e7d32", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/testnet-practice-guide/index.html:1044", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/testnet-practice-guide/index.html:1044"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-867be8fd231d7ff8", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/network-consensus-demo/index.html:447", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/network-consensus-demo/index.html:447"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b5399349f3be56ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/emergency-fifty-scenario/index.html:922", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/emergency-fifty-scenario/index.html:922"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32e435adcacf3314", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/utxo-visualizer-enhanced/index.html:1343", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/utxo-visualizer-enhanced/index.html:1343"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3af1f23b2ccaf5f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/digital-signatures-demo/index.html:892", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/digital-signatures-demo/index.html:892"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89de1b1c4f87dcbb", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/kyc-best-practices/index.html:454", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/kyc-best-practices/index.html:454"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23394dc0caf30be6", "name": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-genesis-timeline/index.html:1023", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-genesis-timeline/index.html:1023"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d46e30dc22a317f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin/index.html:797", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin/index.html:797"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-85655c37c6f22cfe", "name": "Insecure pattern 'local_storage_auth_token' in admin/index.html:706", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in admin/index.html:706"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5b76fdfd2020e36", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin/content-generator.html:396", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin/content-generator.html:396"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c32d51b27a6109b", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin/analytics.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin/analytics.html:288"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-445dda5cdb6e45c3", "name": "Insecure pattern 'local_storage_auth_token' in admin/analytics.html:230", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in admin/analytics.html:230"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d2b81f95a26b9d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/visual-synthesizer/index.html:1186", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/visual-synthesizer/index.html:1186"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f079ff2fef4a5265", "name": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/index.html:594", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/index.html:594"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f29b17c9d2b89323", "name": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/lessons/inflation-story.html:450", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/lessons/inflation-story.html:450"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ddceae04e6b4ced", "name": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/lessons/true-cost-of-money.html:822", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/lessons/true-cost-of-money.html:822"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fdf29af58f7b30e4", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/tools/client-script-builder.html:119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/tools/client-script-builder.html:119"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed3715d25bd73731", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/tools/seed-phrase-red-flags.html:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/tools/seed-phrase-red-flags.html:102"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-524168a5373a15fe", "name": "Insecure pattern 'document_write' in institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html:17", "shortDescription": {"text": "Insecure pattern 'document_write' in institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html:1797"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d372271554018cb", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/advisor-to", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html:1319"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ad07b1d2a3b1bea", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/resources/", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/resources/custody-decision-tree.html:387"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3fdc7cc7d749791", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/resources/", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/resources/client-risk-assessment-tool.html:412"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd448a1ee93e6ec5", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-12-building-advisory-practice.html:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8557cc21334cdfea", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-01-why-advisors-cannot-ignore-bitcoin.html:919"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e53f5bec335f556", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-10-client-communication-mastery.html:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abc7601f7bef4311", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-08-estate-and-inheritance-planning.html:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b30e7355905f996", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-03-bitcoin-as-asset-class.html:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c72cffcc690cc0fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-07-bitcoin-taxation.html:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1c60b1d5b5790cd", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-06-custody-and-security.html:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01592c2c59519f30", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-05-bitcoin-investment-vehicles.html:172"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecd4663176168917", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-04-allocation-frameworks.html:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1020acb5a169577", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-09-compliance-and-fiduciary-duty.html:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-706188adbb215de2", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-11-case-studies-common-scenarios.html:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-30bb90f4c27d859b", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/mo", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-02-bitcoin-explained-professionals.html:269"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e70f6c81c57f0e11", "name": "Insecure pattern 'direct_innerhtml_assignment' in institutional/real-estate-developers/calculator/index.html:606", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/real-estate-developers/calculator/index.html:606"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-473fcd80cfbc25be", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/index.html:638", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/index.html:638"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4fa8eff3df96b1e4", "name": "Insecure pattern 'node_child_process' in tools/domain-test-suite.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in tools/domain-test-suite.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a2b35f3222e1a8e", "name": "Insecure pattern 'node_child_process' in tools/deploy-automation.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in tools/deploy-automation.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-92967f72d81ca6d4", "name": "Insecure pattern 'node_child_process' in tools/domain-config.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in tools/domain-config.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e888d8f247fdec79", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/domain-dashboard.html:616", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/domain-dashboard.html:616"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1896e6b3cc157ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in my-learning/index.html:899", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in my-learning/index.html:899"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b34355858c86762", "name": "Insecure pattern 'direct_innerhtml_assignment' in start/index.html:437", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in start/index.html:437"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-831715450ac2b271", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/program-state.js:465", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/program-state.js:465"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a31fb26e88f64764", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-3/index.html:717", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-3/index.html:717"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d1d384e6fe8001a", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-6/index.html:550", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-6/index.html:550"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc360e519ea2b3d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-5/index.html:522", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-5/index.html:522"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bdd62969b8fb33f", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-8/index.html:660", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-8/index.html:660"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d08ce947eb165b2", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-7/index.html:569", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-7/index.html:569"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e2219ee2f150a7d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-4/index.html:356", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-4/index.html:356"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8958fe4658a25c59", "name": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-1/index.html:1640", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-1/index.html:1640"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b27cfb097195534d", "name": "Insecure pattern 'direct_innerhtml_assignment' in demos/index.html:514", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demos/index.html:514"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47e1133ceae56dd5", "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-7f48baa2a35f35d4", "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-27924aa79fa4a517", "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-8c45cbace34fe908", "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@v5 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-934839dd013e8a7b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v5 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-fa5d201b791420f6", "name": "GitHub Action tracks a moving branch", "shortDescription": {"text": "GitHub Action tracks a moving branch"}, "fullDescription": {"text": "snyk/actions/node@master 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": "high", "confidence": 1.0}}, {"id": "scanner-983a3f9c15e3fbd9", "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-65088d460229f2a8", "name": "Very large file: educational-modules/cbdc-vs-bitcoin.js (1876 lines)", "shortDescription": {"text": "Very large file: educational-modules/cbdc-vs-bitcoin.js (1876 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-5165bf96da80add1", "name": "Very large file: js/glossary-data.js (4626 lines)", "shortDescription": {"text": "Very large file: js/glossary-data.js (4626 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-c7c251b3fa4151e7", "name": "Very large file: js/lab-guide.js (1512 lines)", "shortDescription": {"text": "Very large file: js/lab-guide.js (1512 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-99c4d76e3bee9ce5", "name": "Very large file: interactive-demos/wallet-workshop/wallet-workshop.js (2505 lines)", "shortDescription": {"text": "Very large file: interactive-demos/wallet-workshop/wallet-workshop.js (2505 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-fb87472b27b3948e", "name": "Very large file: interactive-demos/sovereign-vault/js/app.js (1633 lines)", "shortDescription": {"text": "Very large file: interactive-demos/sovereign-vault/js/app.js (1633 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-dd7ef25fd1e3a3ad", "name": "Very large file: interactive-demos/bitcoin-sovereign-game/bitcoin-sovereign-game.js (1323 lines)", "shortDescription": {"text": "Very large file: interactive-demos/bitcoin-sovereign-game/bitcoin-sovereign-game.js (1323 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-348fdbb6af846e54", "name": "Very large file: ai-agents/intelligent-agents.js (1737 lines)", "shortDescription": {"text": "Very large file: ai-agents/intelligent-agents.js (1737 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-9eb604e69c5335e8", "name": "Very large file: ai-agents/ai-agents.js (1984 lines)", "shortDescription": {"text": "Very large file: ai-agents/ai-agents.js (1984 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "11 test file(s) for 239 source file(s) (ratio 0.05). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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 1057 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 47 placeholder/mock markers across 30 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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-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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a331f45aa673eeeb", "name": "Legacy-named symbol `module_with_old` in update-subdomain-scripts.py:156", "shortDescription": {"text": "Legacy-named symbol `module_with_old` in update-subdomain-scripts.py:156"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12311c7d0483a167", "name": "Network/subprocess call without timeout or try/except \u2014 serve-https.py:85", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 serve-https.py:85"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00804173f460cdf4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 service-worker.js:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 service-worker.js:63"}, "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-a6ce2dc404975d7e", "name": "Commented-code block (7 lines) in deep-dives/bitcoin-capital/_drafts/loans-math-worksheet.py:671", "shortDescription": {"text": "Commented-code block (7 lines) in deep-dives/bitcoin-capital/_drafts/loans-math-worksheet.py:671"}, "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-afdbd98e1f031402", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/email.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/email.ts:37"}, "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-5eaca38eec4a4fed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/btcpay.ts:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/btcpay.ts:77"}, "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-115cec316339175b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/kit-checkout.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/kit-checkout.ts:20"}, "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-9d509b04f88ecb74", "name": "Commented-code block (8 lines) in api/tutor.ts:23", "shortDescription": {"text": "Commented-code block (8 lines) in api/tutor.ts:23"}, "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-a6d0251488f116f6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/sovereign-checkout.ts:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/sovereign-checkout.ts:8"}, "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-8c7ba1a3ad9b30b8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/create-order.js:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/create-order.js:54"}, "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-61f5f23d61088908", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/checkout.ts:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/checkout.ts:18"}, "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-7b9baf4e0fadcb24", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/database.ts:79", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/database.ts:79"}, "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-47e9b7b0769d0311", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/apprentice-checkout.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/apprentice-checkout.ts:22"}, "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-d6fbfd7d3e6773b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/lightning/create-invoice.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/lightning/create-invoice.js:43"}, "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-3f9720d8114db8c0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/mcp/generate-site.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/mcp/generate-site.ts:68"}, "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-5c42b37f696e497d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/lib/email.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/lib/email.ts:63"}, "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-62f3d7770ac1b4a4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/admin/analytics.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/admin/analytics.ts:35"}, "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-ac602e4fb03cf5cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mcp-integration/mcp-client.js:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mcp-integration/mcp-client.js:86"}, "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-0f95248cbbf47523", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/stripe-checkout.js:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/stripe-checkout.js:99"}, "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-6506c4446516a2ff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/checkout.js:540", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/checkout.js:540"}, "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-4d52a41c2cea0b63", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/module-gate-subdomain.js:118", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/module-gate-subdomain.js:118"}, "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-44388d578ce3e130", "name": "Commented-code block (6 lines) in js/module-gate.js:15", "shortDescription": {"text": "Commented-code block (6 lines) in js/module-gate.js:15"}, "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-0b68fc06168f112f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/module-gate.js:127", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/module-gate.js:127"}, "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-2c56de3d55538a46", "name": "Commented-code block (5 lines) in js/reflect-widget.js:36", "shortDescription": {"text": "Commented-code block (5 lines) in js/reflect-widget.js:36"}, "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-5907d51d7ca42388", "name": "Legacy-named symbol `plan_backup` in js/youth-engine.js:36", "shortDescription": {"text": "Legacy-named symbol `plan_backup` in js/youth-engine.js:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be25d1b0086e4ad2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/membership-gate.js:209", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/membership-gate.js:209"}, "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-5280df37ee9d834c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/subdomain-access-control.js:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/subdomain-access-control.js:134"}, "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-c1d3dc9f64e57dba", "name": "Commented-code block (5 lines) in js/kpi-tracking.js:318", "shortDescription": {"text": "Commented-code block (5 lines) in js/kpi-tracking.js:318"}, "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-4f22045484653600", "name": "Commented-code block (6 lines) in js/analytics.js:458", "shortDescription": {"text": "Commented-code block (6 lines) in js/analytics.js:458"}, "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-726af50b43a45e7c", "name": "Legacy-named symbol `includeLegacy` in js/progress-manager.js:654", "shortDescription": {"text": "Legacy-named symbol `includeLegacy` in js/progress-manager.js:654"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9a0e9645a7d0845", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/gemini-service.js:473", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/gemini-service.js:473"}, "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-30ee760f35a659e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/widgets/api-handler.js:107", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/widgets/api-handler.js:107"}, "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-4051bcba7364524d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/tutor-evals.mjs:300", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/tutor-evals.mjs:300"}, "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-9d5de2894b29080b", "name": "Commented-code block (5 lines) in scripts/nostr/zap-profile-check.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/nostr/zap-profile-check.mjs:4"}, "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-55bed29c8e23362a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/content-lock.js:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/content-lock.js:54"}, "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-d9ad7f47e5c6d649", "name": "`fetch()` without try/.catch or AbortSignal \u2014 assets/snippets/kit-checkout.js:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 assets/snippets/kit-checkout.js:28"}, "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-f6b6ed73844c3fda", "name": "Legacy-named symbol `bsa_btc_usd_v1` in assets/snippets/sats-price.js:9", "shortDescription": {"text": "Legacy-named symbol `bsa_btc_usd_v1` in assets/snippets/sats-price.js:9"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f0d14ccd0c517af", "name": "Legacy-named symbol `hdLegacy` in interactive-demos/bitcoin-key-generator-visual/bitcoin-crypto.js:462", "shortDescription": {"text": "Legacy-named symbol `hdLegacy` in interactive-demos/bitcoin-key-generator-visual/bitcoin-crypto.js:462"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7cecd6b2952ede2d", "name": "Commented-code block (5 lines) in interactive-demos/bitcoin-key-generator-visual/bitcoin-crypto.js:406", "shortDescription": {"text": "Commented-code block (5 lines) in interactive-demos/bitcoin-key-generator-visual/bitcoin-crypto.js:406"}, "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-8ee664cee1be39b5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 interactive-demos/mempool-visualizer/mempool-live.js:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 interactive-demos/mempool-visualizer/mempool-live.js:22"}, "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-c93b41dc3f25a247", "name": "Legacy-named symbol `generateFakeLegacy` in interactive-demos/address-format-explorer/address-generator.js:48", "shortDescription": {"text": "Legacy-named symbol `generateFakeLegacy` in interactive-demos/address-format-explorer/address-generator.js:48"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d12f9a55b9be43a", "name": "Legacy-named symbol `no_backup` in interactive-demos/sovereign-vault/js/resilience.js:320", "shortDescription": {"text": "Legacy-named symbol `no_backup` in interactive-demos/sovereign-vault/js/resilience.js:320"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b121f7d6319d7ee", "name": "Commented-code block (5 lines) in programa-colombia/program-state.js:300", "shortDescription": {"text": "Commented-code block (5 lines) in programa-colombia/program-state.js:300"}, "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-6adfe3d30ee9355f", "name": "40 env vars used in code but missing from .env.example", "shortDescription": {"text": "40 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_PASSWORD`, `ALBY_WEBHOOK_SECRET`, `ALLOWED_ORIGIN`, `ANTHROPIC_API_KEY`, `BTCPAY_API_KEY`, `BTCPAY_STORE_ID`, `BTCPAY_URL`, `BTCPAY_WEBHOOK_SECRET` + 32 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}}, {"id": "scanner-bec2073665f1fc7c", "name": "Dangling fetch: POST https://api.zaprite.com/v1/orders (api/create-order.js:54)", "shortDescription": {"text": "Dangling fetch: POST https://api.zaprite.com/v1/orders (api/create-order.js:54)"}, "fullDescription": {"text": "`api/create-order.js:54` calls `POST https://api.zaprite.com/v1/orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.zaprite.com/v1/orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0765e436113bcf3b", "name": "Dangling fetch: GET https://api.zaprite.com/v1/orders/${orderId} (api/webhooks/zaprite.js:210)", "shortDescription": {"text": "Dangling fetch: GET https://api.zaprite.com/v1/orders/${orderId} (api/webhooks/zaprite.js:210)"}, "fullDescription": {"text": "`api/webhooks/zaprite.js:210` calls `GET https://api.zaprite.com/v1/orders/${orderId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.zaprite.com/v1/orders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd99020ea84faf59", "name": "Dangling fetch: POST /api/btcpay-checkout (js/stripe-checkout.js:362)", "shortDescription": {"text": "Dangling fetch: POST /api/btcpay-checkout (js/stripe-checkout.js:362)"}, "fullDescription": {"text": "`js/stripe-checkout.js:362` calls `POST /api/btcpay-checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/btcpay-checkout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd9b8277c4f895a8", "name": "Dangling fetch: POST /api/cart/price (js/checkout.js:81)", "shortDescription": {"text": "Dangling fetch: POST /api/cart/price (js/checkout.js:81)"}, "fullDescription": {"text": "`js/checkout.js:81` calls `POST /api/cart/price` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cart/price`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d275e1599c18311", "name": "Dangling fetch: POST /api/checkout (js/checkout.js:101)", "shortDescription": {"text": "Dangling fetch: POST /api/checkout (js/checkout.js:101)"}, "fullDescription": {"text": "`js/checkout.js:101` calls `POST /api/checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/checkout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b0bfc6aae9e66ab", "name": "Dangling fetch: POST /api/verify-access (js/checkout.js:540)", "shortDescription": {"text": "Dangling fetch: POST /api/verify-access (js/checkout.js:540)"}, "fullDescription": {"text": "`js/checkout.js:540` calls `POST /api/verify-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98a9507d69f3f5b7", "name": "Dangling fetch: POST /api/verify-access (js/module-gate-subdomain.js:118)", "shortDescription": {"text": "Dangling fetch: POST /api/verify-access (js/module-gate-subdomain.js:118)"}, "fullDescription": {"text": "`js/module-gate-subdomain.js:118` calls `POST /api/verify-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-911f7580e57abb1b", "name": "Dangling fetch: POST /api/verify-access (js/module-gate.js:127)", "shortDescription": {"text": "Dangling fetch: POST /api/verify-access (js/module-gate.js:127)"}, "fullDescription": {"text": "`js/module-gate.js:127` calls `POST /api/verify-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8059b9f6bdf65c27", "name": "Dangling fetch: POST /api/tutor (js/reflect-widget.js:1071)", "shortDescription": {"text": "Dangling fetch: POST /api/tutor (js/reflect-widget.js:1071)"}, "fullDescription": {"text": "`js/reflect-widget.js:1071` calls `POST /api/tutor` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tutor`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6cf1afd00a5401a3", "name": "Dangling fetch: POST /api/verify-btcpay-invoice (js/membership-btcpay.js:67)", "shortDescription": {"text": "Dangling fetch: POST /api/verify-btcpay-invoice (js/membership-btcpay.js:67)"}, "fullDescription": {"text": "`js/membership-btcpay.js:67` calls `POST /api/verify-btcpay-invoice` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-btcpay-invoice`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa6457f02938bb03", "name": "Dangling fetch: POST /api/membership-btcpay-checkout (js/membership-btcpay.js:105)", "shortDescription": {"text": "Dangling fetch: POST /api/membership-btcpay-checkout (js/membership-btcpay.js:105)"}, "fullDescription": {"text": "`js/membership-btcpay.js:105` calls `POST /api/membership-btcpay-checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/membership-btcpay-checkout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9048d8464ffac94a", "name": "Dangling fetch: POST /api/verify-access (js/membership-gate.js:209)", "shortDescription": {"text": "Dangling fetch: POST /api/verify-access (js/membership-gate.js:209)"}, "fullDescription": {"text": "`js/membership-gate.js:209` calls `POST /api/verify-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e062e958e35873e4", "name": "Dangling fetch: POST /api/verify-access (js/subdomain-access-control.js:134)", "shortDescription": {"text": "Dangling fetch: POST /api/verify-access (js/subdomain-access-control.js:134)"}, "fullDescription": {"text": "`js/subdomain-access-control.js:134` calls `POST /api/verify-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d12e8a569724dd0", "name": "Dangling fetch: GET /api/verify-payment?order=${orderId}&product=${product} (js/payment-access-control.js:151)", "shortDescription": {"text": "Dangling fetch: GET /api/verify-payment?order=${orderId}&product=${product} (js/payment-access-control.js:151)"}, "fullDescription": {"text": "`js/payment-access-control.js:151` calls `GET /api/verify-payment?order=${orderId}&product=${product}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/verify-payment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3347569a5c8b7386", "name": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd (js/bitcoin-data-simple.", "shortDescription": {"text": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd (js/bitcoin-data-simple.js:15)"}, "fullDescription": {"text": "`js/bitcoin-data-simple.js:15` calls `GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.coingecko.com/api/v3/simple/price`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38512008b5961973", "name": "Dangling fetch: GET https://mempool.space/api/blocks/tip/height (js/bitcoin-data-simple.js:30)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/blocks/tip/height (js/bitcoin-data-simple.js:30)"}, "fullDescription": {"text": "`js/bitcoin-data-simple.js:30` calls `GET https://mempool.space/api/blocks/tip/height` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/blocks/tip/height`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c3f33364baf5e53", "name": "Dangling fetch: GET https://mempool.space/api/mempool (js/bitcoin-data-simple.js:44)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/mempool (js/bitcoin-data-simple.js:44)"}, "fullDescription": {"text": "`js/bitcoin-data-simple.js:44` calls `GET https://mempool.space/api/mempool` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/mempool`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6af8ca8663c9574", "name": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (js/bitcoin-data-simple.js:58)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (js/bitcoin-data-simple.js:58)"}, "fullDescription": {"text": "`js/bitcoin-data-simple.js:58` calls `GET https://mempool.space/api/v1/fees/recommended` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/v1/fees/recommended`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c64ebd83cbddf4c8", "name": "Dangling fetch: GET https://mempool.space/api/v1/difficulty-adjustment (js/bitcoin-data-simple.js:72)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/v1/difficulty-adjustment (js/bitcoin-data-simple.js:72)"}, "fullDescription": {"text": "`js/bitcoin-data-simple.js:72` calls `GET https://mempool.space/api/v1/difficulty-adjustment` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/v1/difficulty-adjustment`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f8b0e6adc0b65d8b", "name": "Dangling fetch: POST /api/entitlements/check (components/content-lock.js:54)", "shortDescription": {"text": "Dangling fetch: POST /api/entitlements/check (components/content-lock.js:54)"}, "fullDescription": {"text": "`components/content-lock.js:54` calls `POST /api/entitlements/check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/entitlements/check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15d435c2596667c4", "name": "Dangling fetch: POST /api/auth/magic-link (components/content-lock.js:335)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/magic-link (components/content-lock.js:335)"}, "fullDescription": {"text": "`components/content-lock.js:335` calls `POST /api/auth/magic-link` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/magic-link`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0d1a406886ef3e7", "name": "Dangling fetch: POST /api/usage/track (components/content-lock.js:364)", "shortDescription": {"text": "Dangling fetch: POST /api/usage/track (components/content-lock.js:364)"}, "fullDescription": {"text": "`components/content-lock.js:364` calls `POST /api/usage/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/usage/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-479fdadf12db8548", "name": "Dangling fetch: POST /api/kit-checkout (assets/snippets/kit-checkout.js:28)", "shortDescription": {"text": "Dangling fetch: POST /api/kit-checkout (assets/snippets/kit-checkout.js:28)"}, "fullDescription": {"text": "`assets/snippets/kit-checkout.js:28` calls `POST /api/kit-checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/kit-checkout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d09efa03a00cdaf9", "name": "Dangling fetch: GET https://mempool.space/api/v1/prices (assets/snippets/sats-price.js:39)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/v1/prices (assets/snippets/sats-price.js:39)"}, "fullDescription": {"text": "`assets/snippets/sats-price.js:39` calls `GET https://mempool.space/api/v1/prices` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/v1/prices`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7dffb0db2edffa2f", "name": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (interactive-demos/mempool-visualizer/mempool-live.js:", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (interactive-demos/mempool-visualizer/mempool-live.js:18)"}, "fullDescription": {"text": "`interactive-demos/mempool-visualizer/mempool-live.js:18` calls `GET https://mempool.space/api/v1/fees/recommended` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/v1/fees/recommended`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89d01d93fb2af172", "name": "Dangling fetch: GET https://mempool.space/api/mempool (interactive-demos/mempool-visualizer/mempool-live.js:22)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/mempool (interactive-demos/mempool-visualizer/mempool-live.js:22)"}, "fullDescription": {"text": "`interactive-demos/mempool-visualizer/mempool-live.js:22` calls `GET https://mempool.space/api/mempool` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/mempool`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2311620115fd3049", "name": "Dangling fetch: POST https://api.resend.com/emails (api/email.ts:37)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (api/email.ts:37)"}, "fullDescription": {"text": "`api/email.ts:37` calls `POST https://api.resend.com/emails` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.resend.com/emails`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5cf5e8ad83cbd53", "name": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (api/email.ts:65)", "shortDescription": {"text": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (api/email.ts:65)"}, "fullDescription": {"text": "`api/email.ts:65` calls `POST https://api.sendgrid.com/v3/mail/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.sendgrid.com/v3/mail/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-964dcc6a1188a4a9", "name": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/kit-checkout.ts:20)", "shortDescription": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/kit-checkout.ts:20)"}, "fullDescription": {"text": "`api/kit-checkout.ts:20` calls `POST https://api.stripe.com/v1${endpoint}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.stripe.com/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90eaa622390d1e47", "name": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_24hr_change=true", "shortDescription": {"text": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_24hr_change=true (api/tutor.ts:268)"}, "fullDescription": {"text": "`api/tutor.ts:268` calls `GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_24hr_change=true` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.coingecko.com/api/v3/simple/price`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf2c3f7d8984101d", "name": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (api/tutor.ts:272)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (api/tutor.ts:272)"}, "fullDescription": {"text": "`api/tutor.ts:272` calls `GET https://mempool.space/api/v1/fees/recommended` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/v1/fees/recommended`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4566c20bba9fae9c", "name": "Dangling fetch: GET https://mempool.space/api/blocks/tip/height (api/tutor.ts:275)", "shortDescription": {"text": "Dangling fetch: GET https://mempool.space/api/blocks/tip/height (api/tutor.ts:275)"}, "fullDescription": {"text": "`api/tutor.ts:275` calls `GET https://mempool.space/api/blocks/tip/height` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/mempool.space/api/blocks/tip/height`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52fed16d061f6cf1", "name": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/sovereign-checkout.ts:8)", "shortDescription": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/sovereign-checkout.ts:8)"}, "fullDescription": {"text": "`api/sovereign-checkout.ts:8` calls `POST https://api.stripe.com/v1${endpoint}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.stripe.com/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2152eb13a000edf5", "name": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/checkout.ts:18)", "shortDescription": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/checkout.ts:18)"}, "fullDescription": {"text": "`api/checkout.ts:18` calls `POST https://api.stripe.com/v1${endpoint}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.stripe.com/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b8c8896543d2930", "name": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd (api/apprentice-checkout", "shortDescription": {"text": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd (api/apprentice-checkout.ts:22)"}, "fullDescription": {"text": "`api/apprentice-checkout.ts:22` calls `GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.coingecko.com/api/v3/simple/price`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91cb02434ab11f4c", "name": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/apprentice-checkout.ts:33)", "shortDescription": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/apprentice-checkout.ts:33)"}, "fullDescription": {"text": "`api/apprentice-checkout.ts:33` calls `POST https://api.stripe.com/v1${endpoint}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.stripe.com/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-472383522374044a", "name": "Dangling fetch: POST https://api.resend.com/emails (api/lib/email.ts:63)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (api/lib/email.ts:63)"}, "fullDescription": {"text": "`api/lib/email.ts:63` calls `POST https://api.resend.com/emails` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.resend.com/emails`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82afbae4bfffe106", "name": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (api/lib/email.ts:98)", "shortDescription": {"text": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (api/lib/email.ts:98)"}, "fullDescription": {"text": "`api/lib/email.ts:98` calls `POST https://api.sendgrid.com/v3/mail/send` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.sendgrid.com/v3/mail/send`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-510dd164b1787cc8", "name": "Unused endpoint: POST /api/mcp/generate-site", "shortDescription": {"text": "Unused endpoint: POST /api/mcp/generate-site"}, "fullDescription": {"text": "`server-local.js` declares `POST /api/mcp/generate-site` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0723ef5cab312650", "name": "Unused endpoint: POST /api/mcp/generate", "shortDescription": {"text": "Unused endpoint: POST /api/mcp/generate"}, "fullDescription": {"text": "`server-local.js` declares `POST /api/mcp/generate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99a7751cc7341d02", "name": "Unused endpoint: POST /api/analytics/event", "shortDescription": {"text": "Unused endpoint: POST /api/analytics/event"}, "fullDescription": {"text": "`server-local.js` declares `POST /api/analytics/event` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df71a21d8d03d3ec", "name": "Unused endpoint: GET /api/bitcoin/network-status", "shortDescription": {"text": "Unused endpoint: GET /api/bitcoin/network-status"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/bitcoin/network-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8431cc83146c2878", "name": "Unused endpoint: GET /api/bitcoin/price", "shortDescription": {"text": "Unused endpoint: GET /api/bitcoin/price"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/bitcoin/price` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5193ddb987bec912", "name": "Unused endpoint: GET /api/bitcoin/fees", "shortDescription": {"text": "Unused endpoint: GET /api/bitcoin/fees"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/bitcoin/fees` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e89bcb5ae984c5c", "name": "Unused endpoint: GET /api/intelligence/summary", "shortDescription": {"text": "Unused endpoint: GET /api/intelligence/summary"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/intelligence/summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b4ecb0b06ba10b7c", "name": "Unused endpoint: POST /api/course/generate", "shortDescription": {"text": "Unused endpoint: POST /api/course/generate"}, "fullDescription": {"text": "`server-local.js` declares `POST /api/course/generate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e7426f892d4e96b", "name": "Unused endpoint: GET /api/learning/module/:name", "shortDescription": {"text": "Unused endpoint: GET /api/learning/module/:name"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/learning/module/:name` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec0cd12b6ff06da9", "name": "Unused endpoint: GET /api/simulations/:type", "shortDescription": {"text": "Unused endpoint: GET /api/simulations/:type"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/simulations/:type` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-60d1f0751d6ba16a", "name": "Unused endpoint: GET /api/simulations", "shortDescription": {"text": "Unused endpoint: GET /api/simulations"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/simulations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76a222b10264b5b8", "name": "Unused endpoint: ALL /api/dev/unlock-all", "shortDescription": {"text": "Unused endpoint: ALL /api/dev/unlock-all"}, "fullDescription": {"text": "`server-local.js` declares `ALL /api/dev/unlock-all` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-869f85c77f19109b", "name": "Unused endpoint: GET /api/tools/validate-address", "shortDescription": {"text": "Unused endpoint: GET /api/tools/validate-address"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/tools/validate-address` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ed28670a44fe4cb5", "name": "Unused endpoint: GET /api/tools/transaction", "shortDescription": {"text": "Unused endpoint: GET /api/tools/transaction"}, "fullDescription": {"text": "`server-local.js` declares `GET /api/tools/transaction` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20071"}, "properties": {"repository": "Sovereigndwp/bitcoin-sovereign-academy", "repoUrl": "https://github.com/Sovereigndwp/bitcoin-sovereign-academy", "branch": "main"}, "results": [{"ruleId": "scanner-08364551cd6ed932", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 fix-interactive-functionality.js:7"}, "properties": {"repobilityId": "dc28696fafc300a2", "scanner": "scanner-primary", "fingerprint": "08364551cd6ed932", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63585c45e9394569", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server-local.js:56"}, "properties": {"repobilityId": "2cc973c160e360bd", "scanner": "scanner-primary", "fingerprint": "63585c45e9394569", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7fb3981570c3d7f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-lightning.js:10"}, "properties": {"repobilityId": "a61a6db6ad41cc37", "scanner": "scanner-primary", "fingerprint": "7fb3981570c3d7f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef40bc99bf45294d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 service-worker.js:20"}, "properties": {"repobilityId": "79f89d5080ed0041", "scanner": "scanner-primary", "fingerprint": "ef40bc99bf45294d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-396c26cb101db056", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 educational-modules/cbdc-vs-bitcoin.js:42"}, "properties": {"repobilityId": "8ff7c489aa589bac", "scanner": "scanner-primary", "fingerprint": "396c26cb101db056", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00aef69c4c0df653", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/index.ts:136"}, "properties": {"repobilityId": "7eddfc46753ed49c", "scanner": "scanner-primary", "fingerprint": "00aef69c4c0df653", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a2c1bbcd0d9908ac", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 api/get-token.ts:83"}, "properties": {"repobilityId": "3d1f639da36abbae", "scanner": "scanner-primary", "fingerprint": "a2c1bbcd0d9908ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-aa93dba80a6563e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/create-order.js:91"}, "properties": {"repobilityId": "310ee698f6ec672b", "scanner": "scanner-primary", "fingerprint": "aa93dba80a6563e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-090274cac047431e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/lightning/create-invoice.js:93"}, "properties": {"repobilityId": "de34421ae102519f", "scanner": "scanner-primary", "fingerprint": "090274cac047431e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5f0f944585d0e36", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/auth/magic-link.ts:130"}, "properties": {"repobilityId": "b845251ad6039ea8", "scanner": "scanner-primary", "fingerprint": "e5f0f944585d0e36", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00dd18e87965156e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/auth/verify.ts:226"}, "properties": {"repobilityId": "04ca80d030a202d4", "scanner": "scanner-primary", "fingerprint": "00dd18e87965156e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8476328b66020701", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/entitlements/check.ts:162"}, "properties": {"repobilityId": "2db6875c85e5ca8d", "scanner": "scanner-primary", "fingerprint": "8476328b66020701", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b7f5389854c53ad8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/entitlements/grant.ts:61"}, "properties": {"repobilityId": "419306510713d94d", "scanner": "scanner-primary", "fingerprint": "b7f5389854c53ad8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba4e1aa136dff154", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/lib/email.ts:83"}, "properties": {"repobilityId": "2722b9dba1e8b231", "scanner": "scanner-primary", "fingerprint": "ba4e1aa136dff154", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0d1f30d376083e92", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 api/lib/db.ts:289"}, "properties": {"repobilityId": "b315c2aa18412941", "scanner": "scanner-primary", "fingerprint": "0d1f30d376083e92", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f31c7437ab93d0c5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 api/admin/payments.ts:83"}, "properties": {"repobilityId": "5a68efd7a48642f7", "scanner": "scanner-primary", "fingerprint": "f31c7437ab93d0c5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-446bc710c859695d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/payments/checkout.ts:175"}, "properties": {"repobilityId": "d8bb775c53f4cd78", "scanner": "scanner-primary", "fingerprint": "446bc710c859695d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-27d770b6e1912712", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/subscriptions/manage.ts:181"}, "properties": {"repobilityId": "6e95e68346bd96a0", "scanner": "scanner-primary", "fingerprint": "27d770b6e1912712", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ab272abf2fd876b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 api/webhooks/stripe.ts:409"}, "properties": {"repobilityId": "ae0f1a239420e3fc", "scanner": "scanner-primary", "fingerprint": "5ab272abf2fd876b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-339ef84d6c8575bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/stripe.ts:178"}, "properties": {"repobilityId": "13e0869c618f5e13", "scanner": "scanner-primary", "fingerprint": "339ef84d6c8575bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d7e7d0d55dc2a040", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/btcpay.ts:227"}, "properties": {"repobilityId": "9aea89983aeb616f", "scanner": "scanner-primary", "fingerprint": "d7e7d0d55dc2a040", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-701b55e8e67db5f2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/zaprite.js:23"}, "properties": {"repobilityId": "210c24d12ca9dcfa", "scanner": "scanner-primary", "fingerprint": "701b55e8e67db5f2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7c0aeea2d3da5da", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/webhooks/alby.js:40"}, "properties": {"repobilityId": "33125524e276cc48", "scanner": "scanner-primary", "fingerprint": "c7c0aeea2d3da5da", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4acca9e6eb7a7f10", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/mcp-client.js:22"}, "properties": {"repobilityId": "0e3a8380cccdd103", "scanner": "scanner-primary", "fingerprint": "4acca9e6eb7a7f10", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7462afa4d2854055", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agent-bridge.js:350"}, "properties": {"repobilityId": "e2f2e9ffd8c673bf", "scanner": "scanner-primary", "fingerprint": "7462afa4d2854055", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-175e91475e584a28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/perf-seo/run.js:132"}, "properties": {"repobilityId": "172b6676cce8629a", "scanner": "scanner-primary", "fingerprint": "175e91475e584a28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9ada655b60cff17e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/security/run.js:18"}, "properties": {"repobilityId": "d8ba4438f0949882", "scanner": "scanner-primary", "fingerprint": "9ada655b60cff17e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fae97cf9cb29e8ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/planner/run.js:216"}, "properties": {"repobilityId": "47499e593f3c19cc", "scanner": "scanner-primary", "fingerprint": "fae97cf9cb29e8ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17b89015cd47fdf5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/analytics/run.js:18"}, "properties": {"repobilityId": "e6785056f9a7c03b", "scanner": "scanner-primary", "fingerprint": "17b89015cd47fdf5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e295dd3d510c48ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/dx/run.js:18"}, "properties": {"repobilityId": "8b93f1db1403d706", "scanner": "scanner-primary", "fingerprint": "e295dd3d510c48ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8308dff573b8231", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/content/run.js:18"}, "properties": {"repobilityId": "7943bd234efad341", "scanner": "scanner-primary", "fingerprint": "d8308dff573b8231", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9daa457d8af68aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/curriculum/run.js:18"}, "properties": {"repobilityId": "7720b24e4c8d4420", "scanner": "scanner-primary", "fingerprint": "f9daa457d8af68aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9965fa6f7d012ab0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/agents/a11y/run.js:112"}, "properties": {"repobilityId": "b9e1553ac510d35b", "scanner": "scanner-primary", "fingerprint": "9965fa6f7d012ab0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4fe1aedb3e30ccb1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/publish-reports.js:299"}, "properties": {"repobilityId": "6f46480c8dabc458", "scanner": "scanner-primary", "fingerprint": "4fe1aedb3e30ccb1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f642cd39514b41c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-lhci.js:54"}, "properties": {"repobilityId": "7c3e231513938dfc", "scanner": "scanner-primary", "fingerprint": "8f642cd39514b41c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f9afd888a36a9bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-fk.js:47"}, "properties": {"repobilityId": "98530c32b231f38b", "scanner": "scanner-primary", "fingerprint": "8f9afd888a36a9bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3276fa4325ec9696", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp-integration/tools/run-axe.js:86"}, "properties": {"repobilityId": "5df7d9a372478400", "scanner": "scanner-primary", "fingerprint": "3276fa4325ec9696", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58b17d1f5ddd37c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/auditors/content-generator.js:417"}, "properties": {"repobilityId": "7f3d231b0cec4141", "scanner": "scanner-primary", "fingerprint": "58b17d1f5ddd37c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-049cc685f118173d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 blockchain-integration/checkonchain-metrics.js:46"}, "properties": {"repobilityId": "8b6c7ad3f4873c49", "scanner": "scanner-primary", "fingerprint": "049cc685f118173d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-66291e27b00bda9f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/email-capture.js:394"}, "properties": {"repobilityId": "81cc71494ed8fb04", "scanner": "scanner-primary", "fingerprint": "66291e27b00bda9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-04da2df21e37ccf9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/checkout.js:615"}, "properties": {"repobilityId": "94fc71e53f03053d", "scanner": "scanner-primary", "fingerprint": "04da2df21e37ccf9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f7d0260a23b15ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/mobile-interactions.js:601"}, "properties": {"repobilityId": "b57f8d6dd1e3c6a8", "scanner": "scanner-primary", "fingerprint": "5f7d0260a23b15ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-412d2bc64760073c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/module-gate-subdomain.js:18"}, "properties": {"repobilityId": "d6388a0ab42908b3", "scanner": "scanner-primary", "fingerprint": "412d2bc64760073c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-523486a685835fd6", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/onboarding-flow.js:285"}, "properties": {"repobilityId": "8a1ce534dd5a29f6", "scanner": "scanner-primary", "fingerprint": "523486a685835fd6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a6639a98c0adb2ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/onboarding-flow.js:24"}, "properties": {"repobilityId": "d1bb9301e548a1d0", "scanner": "scanner-primary", "fingerprint": "a6639a98c0adb2ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc17e849e9a9baf7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/script.js:17"}, "properties": {"repobilityId": "a1e81eacd7460391", "scanner": "scanner-primary", "fingerprint": "cc17e849e9a9baf7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7078b9c858a2b09b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/module-gate.js:9"}, "properties": {"repobilityId": "1244ea4b535b0f64", "scanner": "scanner-primary", "fingerprint": "7078b9c858a2b09b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95d8ca4c748c7552", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/demo-lock-subdomain.js:36"}, "properties": {"repobilityId": "0efc74a78336bbd7", "scanner": "scanner-primary", "fingerprint": "95d8ca4c748c7552", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4efe54533221a75c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/dynamic-content.js:38"}, "properties": {"repobilityId": "597db86b3442daa1", "scanner": "scanner-primary", "fingerprint": "4efe54533221a75c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c57cf3db2632ccb8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/mcp-service.js:559"}, "properties": {"repobilityId": "897d5dac670e897f", "scanner": "scanner-primary", "fingerprint": "c57cf3db2632ccb8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e11a4d7d08be5ff", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/mcp-content-loader.js:169"}, "properties": {"repobilityId": "44db066b6be28127", "scanner": "scanner-primary", "fingerprint": "5e11a4d7d08be5ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-209b1b00f963fb16", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/mcp-content-loader.js:368"}, "properties": {"repobilityId": "c4cd161e475d982b", "scanner": "scanner-primary", "fingerprint": "209b1b00f963fb16", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-450c8194b7101cc8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/config.js:108"}, "properties": {"repobilityId": "3313c3c833b50ff6", "scanner": "scanner-primary", "fingerprint": "450c8194b7101cc8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f632d83e4e1b9a20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/subdomain-access-control.js:110"}, "properties": {"repobilityId": "44ab6bf6bf887a1f", "scanner": "scanner-primary", "fingerprint": "f632d83e4e1b9a20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-522020b403f13200", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/learning-path.js:25"}, "properties": {"repobilityId": "ff099ff396390c28", "scanner": "scanner-primary", "fingerprint": "522020b403f13200", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df99d5303cbb1ddd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/ab-home.js:20"}, "properties": {"repobilityId": "c374f85c614d8868", "scanner": "scanner-primary", "fingerprint": "df99d5303cbb1ddd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cfaf9dda5383f38", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/analytics.js:382"}, "properties": {"repobilityId": "52c2e5fa80a22c55", "scanner": "scanner-primary", "fingerprint": "5cfaf9dda5383f38", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba4273c2d035c2d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-reliable.js:51"}, "properties": {"repobilityId": "67d3ccb39840e218", "scanner": "scanner-primary", "fingerprint": "ba4273c2d035c2d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b7f0bcdc2b8480e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/payment-access-control.js:465"}, "properties": {"repobilityId": "f7f206044ba96467", "scanner": "scanner-primary", "fingerprint": "3b7f0bcdc2b8480e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9171d6781f87a2b7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-simple.js:11"}, "properties": {"repobilityId": "7384ff93a7b3d512", "scanner": "scanner-primary", "fingerprint": "9171d6781f87a2b7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f95d8bd39b9f126", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/bitcoin-data-fallback.js:69"}, "properties": {"repobilityId": "ff2d3af302f043c9", "scanner": "scanner-primary", "fingerprint": "2f95d8bd39b9f126", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07f48ae0e1fedf24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/navigation-context.js:50"}, "properties": {"repobilityId": "b54cbcfd675491d5", "scanner": "scanner-primary", "fingerprint": "07f48ae0e1fedf24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d3b89575e85dc1a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/progress-manager.js:1232"}, "properties": {"repobilityId": "80f6ee33ddabb4c9", "scanner": "scanner-primary", "fingerprint": "d3b89575e85dc1a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28b8293dbb9050a0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/gemini-service.js:224"}, "properties": {"repobilityId": "4c2d1a50b39cc0d8", "scanner": "scanner-primary", "fingerprint": "28b8293dbb9050a0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba2b6bc6d4df8966", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/event-tracking.ts:42"}, "properties": {"repobilityId": "adc16a2516f89f23", "scanner": "scanner-primary", "fingerprint": "ba2b6bc6d4df8966", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e1c239f70c1eab5a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/ab-testing.ts:222"}, "properties": {"repobilityId": "99ec80ba5cd3f4ed", "scanner": "scanner-primary", "fingerprint": "e1c239f70c1eab5a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-67920a504818a60e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/white-label.ts:363"}, "properties": {"repobilityId": "9191ba17bed374e1", "scanner": "scanner-primary", "fingerprint": "67920a504818a60e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d50320ccb1fb613", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/certification-engine.ts:468"}, "properties": {"repobilityId": "2c8ab46bd564d5ea", "scanner": "scanner-primary", "fingerprint": "1d50320ccb1fb613", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d7caab15cf8343a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/utils/logger.ts:85"}, "properties": {"repobilityId": "040b480d11ca3693", "scanner": "scanner-primary", "fingerprint": "d7caab15cf8343a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6815bcefcf4f7ca7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/widgets/api-handler.js:506"}, "properties": {"repobilityId": "1bf382754d15e148", "scanner": "scanner-primary", "fingerprint": "6815bcefcf4f7ca7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e29f375237cf895", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/replace-emojis.js:187"}, "properties": {"repobilityId": "380c3c1cbf6f44d3", "scanner": "scanner-primary", "fingerprint": "5e29f375237cf895", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c47db8bc032847a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-operating-risk.js:156"}, "properties": {"repobilityId": "177c8c7ace9b973b", "scanner": "scanner-primary", "fingerprint": "c47db8bc032847a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4be851c36f338e89", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 components/content-lock.js:323"}, "properties": {"repobilityId": "aa5a39111790b247", "scanner": "scanner-primary", "fingerprint": "4be851c36f338e89", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-760e307c77057050", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/mining-simulator/mining-enhanced.js:29"}, "properties": {"repobilityId": "67fbd252ffb35e5d", "scanner": "scanner-primary", "fingerprint": "760e307c77057050", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ab91ebeaadf3bd6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/address-format-explorer/main.js:442"}, "properties": {"repobilityId": "92cc4249851399ce", "scanner": "scanner-primary", "fingerprint": "8ab91ebeaadf3bd6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af149a819e550d46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/transaction-builder/transaction-builder-enhanced.js:33"}, "properties": {"repobilityId": "16b5386b8b169407", "scanner": "scanner-primary", "fingerprint": "af149a819e550d46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e3533b214ffab75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/wallet-workshop/wallet-workshop.js:9"}, "properties": {"repobilityId": "1f90e0d4f743a8ce", "scanner": "scanner-primary", "fingerprint": "9e3533b214ffab75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1db809aa8bd4ce2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 interactive-demos/bitcoin-sovereign-game/bitcoin-sovereign-game.js:56"}, "properties": {"repobilityId": "741b418fb5410ffe", "scanner": "scanner-primary", "fingerprint": "a1db809aa8bd4ce2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9318eed7d24f230f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 ai-agents/intelligent-agents.js:28"}, "properties": {"repobilityId": "922385092d15e470", "scanner": "scanner-primary", "fingerprint": "9318eed7d24f230f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3108f473d288222e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 ai-agents/advanced-agents.js:213"}, "properties": {"repobilityId": "49f4b7c39b322c26", "scanner": "scanner-primary", "fingerprint": "3108f473d288222e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4e62d2de39c0bab9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/domain-monitor.js:83"}, "properties": {"repobilityId": "2eb993c0b8feaee9", "scanner": "scanner-primary", "fingerprint": "4e62d2de39c0bab9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8258ac55753d03a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/seo-optimizer.js:49"}, "properties": {"repobilityId": "79c8ab77a1699598", "scanner": "scanner-primary", "fingerprint": "8258ac55753d03a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-027d1942ba0ea950", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/check-unique-ids.js:37"}, "properties": {"repobilityId": "20048b65eccd819a", "scanner": "scanner-primary", "fingerprint": "027d1942ba0ea950", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f5c13c61395e60d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/test-tenants.js:34"}, "properties": {"repobilityId": "d87988a7acfa27ae", "scanner": "scanner-primary", "fingerprint": "2f5c13c61395e60d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b094c50927048ca9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/domain-test-suite.js:56"}, "properties": {"repobilityId": "fc256f5273b9a870", "scanner": "scanner-primary", "fingerprint": "b094c50927048ca9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95b0b00789a02ad1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/deploy-automation.js:51"}, "properties": {"repobilityId": "039749343fde3281", "scanner": "scanner-primary", "fingerprint": "95b0b00789a02ad1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91c703525c018066", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/domain-config.js:53"}, "properties": {"repobilityId": "b6b84b9f2d46b624", "scanner": "scanner-primary", "fingerprint": "91c703525c018066", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9372d6930d50d530", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/security-headers.js:73"}, "properties": {"repobilityId": "8666cf5f1e5ced40", "scanner": "scanner-primary", "fingerprint": "9372d6930d50d530", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a5eb1dc69a1ab1d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/content-validator.js:39"}, "properties": {"repobilityId": "6283cf3cef093903", "scanner": "scanner-primary", "fingerprint": "5a5eb1dc69a1ab1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f00e533e32992dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/bundle-assets.js:35"}, "properties": {"repobilityId": "963dc4b46988483d", "scanner": "scanner-primary", "fingerprint": "8f00e533e32992dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6dc9062ecf618d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/site-enhancer.js:28"}, "properties": {"repobilityId": "22bcd225426c77ba", "scanner": "scanner-primary", "fingerprint": "c6dc9062ecf618d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ebb1c047033f13f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in emergency-kit.html:2176"}, "properties": {"repobilityId": "7dfb6e801b44b2cf", "scanner": "scanner-primary", "fingerprint": "ebb1c047033f13f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "emergency-kit.html"}, "region": {"startLine": 2176}}}]}, {"ruleId": "scanner-d35022841a0e18c8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pricing.html:975"}, "properties": {"repobilityId": "95fe46f49a716560", "scanner": "scanner-primary", "fingerprint": "d35022841a0e18c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pricing.html"}, "region": {"startLine": 975}}}]}, {"ruleId": "scanner-e407c754be783776", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:4020"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "e407c754be783776", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 4020}}}]}, {"ruleId": "scanner-c9414648ba17d29c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in glossary.html:606"}, "properties": {"repobilityId": "447c2c104415112f", "scanner": "scanner-primary", "fingerprint": "c9414648ba17d29c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "glossary.html"}, "region": {"startLine": 606}}}]}, {"ruleId": "scanner-ce8e905b4e4e6bcf", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in server-local.js:51"}, "properties": {"repobilityId": "d786a0a0c491587c", "scanner": "scanner-primary", "fingerprint": "ce8e905b4e4e6bcf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server-local.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-61ef0de83180ea86", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in account.html:517"}, "properties": {"repobilityId": "796de0196e47d2e7", "scanner": "scanner-primary", "fingerprint": "61ef0de83180ea86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "account.html"}, "region": {"startLine": 517}}}]}, {"ruleId": "scanner-6c657e4c220fb0f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lock-demos.cjs:29"}, "properties": {"repobilityId": "a832b821fd59e775", "scanner": "scanner-primary", "fingerprint": "6c657e4c220fb0f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lock-demos.cjs"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-14870068d4460e1b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in multisig-security-demo.html:2263"}, "properties": {"repobilityId": "f1102c4b6b3d808f", "scanner": "scanner-primary", "fingerprint": "14870068d4460e1b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "multisig-security-demo.html"}, "region": {"startLine": 2263}}}]}, {"ruleId": "scanner-8c682cc6f1e3bec4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in certificates/verify_certificate.html:189"}, "properties": {"repobilityId": "2cabb0ac91666752", "scanner": "scanner-primary", "fingerprint": "8c682cc6f1e3bec4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "certificates/verify_certificate.html"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-de6f5488d8a9b88a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in weekly/index.html:537"}, "properties": {"repobilityId": "54f61e23858625f1", "scanner": "scanner-primary", "fingerprint": "de6f5488d8a9b88a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "weekly/index.html"}, "region": {"startLine": 537}}}]}, {"ruleId": "scanner-8afd5f7d9836ba72", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in weekly/index.html:544"}, "properties": {"repobilityId": "e205a8f93a06bdaf", "scanner": "scanner-primary", "fingerprint": "8afd5f7d9836ba72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "weekly/index.html"}, "region": {"startLine": 544}}}]}, {"ruleId": "scanner-7d71f71c566a8747", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/semana-8-2026-05/semana-8.previous.html:590"}, "properties": {"repobilityId": "0075de2e3f47b3a9", "scanner": "scanner-primary", "fingerprint": "7d71f71c566a8747", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/semana-8-2026-05/semana-8.previous.html"}, "region": {"startLine": 590}}}]}, {"ruleId": "scanner-21dc58f66addb7d1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/interactive-demos/wallet-workshop-interactive.html:163"}, "properties": {"repobilityId": "583c40fbda65ddc5", "scanner": "scanner-primary", "fingerprint": "21dc58f66addb7d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/interactive-demos/wallet-workshop-interactive.html"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-7f33d8091c64d6ee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/semana-5-options-2026-05/semana-5.previous.html:521"}, "properties": {"repobilityId": "8fbb56e46f1b31aa", "scanner": "scanner-primary", "fingerprint": "7f33d8091c64d6ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/semana-5-options-2026-05/semana-5.previous.html"}, "region": {"startLine": 521}}}]}, {"ruleId": "scanner-1e1b7d259385ce99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-8.previous.html:604"}, "properties": {"repobilityId": "297a8b9ebd316942", "scanner": "scanner-primary", "fingerprint": "1e1b7d259385ce99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-8.previous.html"}, "region": {"startLine": 604}}}]}, {"ruleId": "scanner-aa3cae0dfa73ab01", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-6.previous.html:547"}, "properties": {"repobilityId": "5f3a423b3ab565c2", "scanner": "scanner-primary", "fingerprint": "aa3cae0dfa73ab01", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-6.previous.html"}, "region": {"startLine": 547}}}]}, {"ruleId": "scanner-4cacf55e0b0f1604", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-3.previous.html:741"}, "properties": {"repobilityId": "7aabc7df8139ce55", "scanner": "scanner-primary", "fingerprint": "4cacf55e0b0f1604", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-3.previous.html"}, "region": {"startLine": 741}}}]}, {"ruleId": "scanner-9f7e8b6f81fd786f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-1.previous.html:1651"}, "properties": {"repobilityId": "202759b09506ff93", "scanner": "scanner-primary", "fingerprint": "9f7e8b6f81fd786f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-1.previous.html"}, "region": {"startLine": 1651}}}]}, {"ruleId": "scanner-c017cbc186288a74", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-5.previous.html:528"}, "properties": {"repobilityId": "2551704a63a154d3", "scanner": "scanner-primary", "fingerprint": "c017cbc186288a74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-5.previous.html"}, "region": {"startLine": 528}}}]}, {"ruleId": "scanner-7393cb4536538a55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-4.previous.html:420"}, "properties": {"repobilityId": "58181733f54c6312", "scanner": "scanner-primary", "fingerprint": "7393cb4536538a55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-4.previous.html"}, "region": {"startLine": 420}}}]}, {"ruleId": "scanner-c4cdc4b7d3130e35", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-2.previous.html:597"}, "properties": {"repobilityId": "a30c3ce91fabc005", "scanner": "scanner-primary", "fingerprint": "c4cdc4b7d3130e35", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-2.previous.html"}, "region": {"startLine": 597}}}]}, {"ruleId": "scanner-5f856589be31505a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in archive/colombia-content-2026-05/semana-7.previous.html:584"}, "properties": {"repobilityId": "606ac461eee57d7f", "scanner": "scanner-primary", "fingerprint": "5f856589be31505a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/colombia-content-2026-05/semana-7.previous.html"}, "region": {"startLine": 584}}}]}, {"ruleId": "scanner-50c9a902551a0119", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/bitcoin-capital/bitcoin-backed-mortgages.html:1477"}, "properties": {"repobilityId": "69ef1248f6e5bed5", "scanner": "scanner-primary", "fingerprint": "50c9a902551a0119", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/bitcoin-capital/bitcoin-backed-mortgages.html"}, "region": {"startLine": 1477}}}]}, {"ruleId": "scanner-6d5002d2e19d15d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/foundational-layer-thesis/dashboard.html:218"}, "properties": {"repobilityId": "60cc4bf963b6ed1a", "scanner": "scanner-primary", "fingerprint": "6d5002d2e19d15d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/foundational-layer-thesis/dashboard.html"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-88ecfdac0a441fe8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/time-preference-fundamentals.html:819"}, "properties": {"repobilityId": "a5a25b5d18118886", "scanner": "scanner-primary", "fingerprint": "88ecfdac0a441fe8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/austrian-economics/time-preference-fundamentals.html"}, "region": {"startLine": 819}}}]}, {"ruleId": "scanner-e0b2ae8db2e0156c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/sound-money-theory.html:735"}, "properties": {"repobilityId": "9648704c5ac76d40", "scanner": "scanner-primary", "fingerprint": "e0b2ae8db2e0156c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/austrian-economics/sound-money-theory.html"}, "region": {"startLine": 735}}}]}, {"ruleId": "scanner-cfe682b321e13bf9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/economic-calculation-problem.html:803"}, "properties": {"repobilityId": "5ae514f2c1d5ef62", "scanner": "scanner-primary", "fingerprint": "cfe682b321e13bf9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/austrian-economics/economic-calculation-problem.html"}, "region": {"startLine": 803}}}]}, {"ruleId": "scanner-7b00474bf0d26618", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/austrian-economics/praxeology-human-action.html:824"}, "properties": {"repobilityId": "dd9d05c6d714aeab", "scanner": "scanner-primary", "fingerprint": "7b00474bf0d26618", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/austrian-economics/praxeology-human-action.html"}, "region": {"startLine": 824}}}]}, {"ruleId": "scanner-6c88aba25b3210a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/sovereign-tools/multisig-guide.html:208"}, "properties": {"repobilityId": "82188d9ab5281770", "scanner": "scanner-primary", "fingerprint": "6c88aba25b3210a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/sovereign-tools/multisig-guide.html"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-c48b9cec4d24478f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/digital-scarcity.html:516"}, "properties": {"repobilityId": "fcbdef3fa7c966e1", "scanner": "scanner-primary", "fingerprint": "c48b9cec4d24478f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/first-principles/digital-scarcity.html"}, "region": {"startLine": 516}}}]}, {"ruleId": "scanner-6caeba51c1aea8a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/index.html:2076"}, "properties": {"repobilityId": "60fff7ed4bb31081", "scanner": "scanner-primary", "fingerprint": "6caeba51c1aea8a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/first-principles/index.html"}, "region": {"startLine": 2076}}}]}, {"ruleId": "scanner-224fa320d1936bd1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/why-money-fails.html:450"}, "properties": {"repobilityId": "511a5b638d045e0a", "scanner": "scanner-primary", "fingerprint": "224fa320d1936bd1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/first-principles/why-money-fails.html"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-f9e22901933edb80", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deep-dives/first-principles/original-question-everything.html:2073"}, "properties": {"repobilityId": "eef51187b13629ad", "scanner": "scanner-primary", "fingerprint": "f9e22901933edb80", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deep-dives/first-principles/original-question-everything.html"}, "region": {"startLine": 2073}}}]}, {"ruleId": "scanner-0210fdfb2251467a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp-integration/agents/perf-seo/run.js:12"}, "properties": {"repobilityId": "122ff3dde8a89920", "scanner": "scanner-primary", "fingerprint": "0210fdfb2251467a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp-integration/agents/perf-seo/run.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-33b78bfd04a02056", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp-integration/agents/planner/run.js:12"}, "properties": {"repobilityId": "fbf2325180abf1f4", "scanner": "scanner-primary", "fingerprint": "33b78bfd04a02056", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp-integration/agents/planner/run.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-5dacd4a437318e72", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp-integration/agents/a11y/run.js:12"}, "properties": {"repobilityId": "150b2c1361567067", "scanner": "scanner-primary", "fingerprint": "5dacd4a437318e72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp-integration/agents/a11y/run.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-03e196c7e776b102", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp-integration/tools/run-lhci.js:16"}, "properties": {"repobilityId": "e5925034f9731cc5", "scanner": "scanner-primary", "fingerprint": "03e196c7e776b102", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp-integration/tools/run-lhci.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-523c6d1c2f668535", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in js/stripe-checkout.js:244"}, "properties": {"repobilityId": "07cfc2eb9680a2da", "scanner": "scanner-primary", "fingerprint": "523c6d1c2f668535", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/stripe-checkout.js"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-5de3300567ad97e6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/email-capture.js:213"}, "properties": {"repobilityId": "9783d7ce10ed0b35", "scanner": "scanner-primary", "fingerprint": "5de3300567ad97e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/email-capture.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-4b51ae804a684a25", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/site-nav.js:126"}, "properties": {"repobilityId": "c5440e9bbfd0a8a1", "scanner": "scanner-primary", "fingerprint": "4b51ae804a684a25", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/site-nav.js"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-2471c2578f2328a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/checkout.js:135"}, "properties": {"repobilityId": "13006f121944c086", "scanner": "scanner-primary", "fingerprint": "2471c2578f2328a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/checkout.js"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-93295c824c94e5f1", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in js/checkout.js:614"}, "properties": {"repobilityId": "661e94304a31f787", "scanner": "scanner-primary", "fingerprint": "93295c824c94e5f1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/checkout.js"}, "region": {"startLine": 614}}}]}, {"ruleId": "scanner-3d4f99667d0bade5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mobile-interactions.js:544"}, "properties": {"repobilityId": "201764e62d058e10", "scanner": "scanner-primary", "fingerprint": "3d4f99667d0bade5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/mobile-interactions.js"}, "region": {"startLine": 544}}}]}, {"ruleId": "scanner-58e2103d23a5d1e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/security-utils.js:42"}, "properties": {"repobilityId": "473198c71cd365f7", "scanner": "scanner-primary", "fingerprint": "58e2103d23a5d1e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/security-utils.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-91460f0e7e7c8427", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/module-gate-subdomain.js:312"}, "properties": {"repobilityId": "60a8ac57dbf55cca", "scanner": "scanner-primary", "fingerprint": "91460f0e7e7c8427", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/module-gate-subdomain.js"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-9b03f8b770499a96", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/onboarding-flow.js:273"}, "properties": {"repobilityId": "cce6955802147861", "scanner": "scanner-primary", "fingerprint": "9b03f8b770499a96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/onboarding-flow.js"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-e48724b4432f4960", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/module-gate.js:260"}, "properties": {"repobilityId": "32289be842ac5af0", "scanner": "scanner-primary", "fingerprint": "e48724b4432f4960", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/module-gate.js"}, "region": {"startLine": 260}}}]}, {"ruleId": "scanner-4b1f1f55d1e94221", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/learning-path-navigator.js:222"}, "properties": {"repobilityId": "51f2e998b0e621f0", "scanner": "scanner-primary", "fingerprint": "4b1f1f55d1e94221", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/learning-path-navigator.js"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-20325a07820f9b66", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/demo-lock-subdomain.js:90"}, "properties": {"repobilityId": "0d613c05250c1189", "scanner": "scanner-primary", "fingerprint": "20325a07820f9b66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/demo-lock-subdomain.js"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-614581bdf913b047", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tutor-loader.js:92"}, "properties": {"repobilityId": "cf4db916eb749a94", "scanner": "scanner-primary", "fingerprint": "614581bdf913b047", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/tutor-loader.js"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-74f8c268bd894066", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/dynamic-content.js:429"}, "properties": {"repobilityId": "f08d93c6c8256217", "scanner": "scanner-primary", "fingerprint": "74f8c268bd894066", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/dynamic-content.js"}, "region": {"startLine": 429}}}]}, {"ruleId": "scanner-e22460ff3387fd16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/referral-program.js:179"}, "properties": {"repobilityId": "cac369c47a03d63b", "scanner": "scanner-primary", "fingerprint": "e22460ff3387fd16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/referral-program.js"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-837652226df2c511", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/hero-cta.js:12"}, "properties": {"repobilityId": "f10e62a21cb3904b", "scanner": "scanner-primary", "fingerprint": "837652226df2c511", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/hero-cta.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-b5142d3c5c2090fb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mcp-service.js:482"}, "properties": {"repobilityId": "b6fe77ecdc90c056", "scanner": "scanner-primary", "fingerprint": "b5142d3c5c2090fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/mcp-service.js"}, "region": {"startLine": 482}}}]}, {"ruleId": "scanner-ade4334fdec4511e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/reflect-widget.js:868"}, "properties": {"repobilityId": "1fb5e962283b47b0", "scanner": "scanner-primary", "fingerprint": "ade4334fdec4511e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/reflect-widget.js"}, "region": {"startLine": 868}}}]}, {"ruleId": "scanner-57894a4e4d1a1fda", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in js/membership-btcpay.js:53"}, "properties": {"repobilityId": "f6c8570adbb20636", "scanner": "scanner-primary", "fingerprint": "57894a4e4d1a1fda", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/membership-btcpay.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-35b8b942ceee55e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mcp-content-loader.js:165"}, "properties": {"repobilityId": "73734f70b5b974a9", "scanner": "scanner-primary", "fingerprint": "35b8b942ceee55e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/mcp-content-loader.js"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-50566b2b6127d029", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in js/mcp-content-loader.js:565"}, "properties": {"repobilityId": "3d332f2836928880", "scanner": "scanner-primary", "fingerprint": "50566b2b6127d029", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/mcp-content-loader.js"}, "region": {"startLine": 565}}}]}, {"ruleId": "scanner-225f7743c571c34c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/smart-onboarding.js:109"}, "properties": {"repobilityId": "367b923737a4306f", "scanner": "scanner-primary", "fingerprint": "225f7743c571c34c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/smart-onboarding.js"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-375ff488c95fdc18", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/progress-momentum.js:52"}, "properties": {"repobilityId": "fa721bf8b53bd165", "scanner": "scanner-primary", "fingerprint": "375ff488c95fdc18", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/progress-momentum.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-7ed42272a91b2f2d", "level": "note", "message": {"text": "Insecure pattern 'document_write' in js/youth-engine.js:208"}, "properties": {"repobilityId": "fb0afc7d2b12166b", "scanner": "scanner-primary", "fingerprint": "7ed42272a91b2f2d", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/youth-engine.js"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-56aa31561b25489d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/youth-engine.js:110"}, "properties": {"repobilityId": "e30d711594b286b0", "scanner": "scanner-primary", "fingerprint": "56aa31561b25489d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/youth-engine.js"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-6506f9e47b01e38c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/monetary-systems-details.js:367"}, "properties": {"repobilityId": "f1bd66d0a81f6b46", "scanner": "scanner-primary", "fingerprint": "6506f9e47b01e38c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/monetary-systems-details.js"}, "region": {"startLine": 367}}}]}, {"ruleId": "scanner-5c5350418752293e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/membership-gate.js:340"}, "properties": {"repobilityId": "aba3124f7ca61415", "scanner": "scanner-primary", "fingerprint": "5c5350418752293e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/membership-gate.js"}, "region": {"startLine": 340}}}]}, {"ruleId": "scanner-10a46fb803f620f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/i18n.js:315"}, "properties": {"repobilityId": "21809915587fa02a", "scanner": "scanner-primary", "fingerprint": "10a46fb803f620f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/i18n.js"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-d3588ffbdaac35b7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/demo-cta-footer.js:130"}, "properties": {"repobilityId": "19153f2202d31645", "scanner": "scanner-primary", "fingerprint": "d3588ffbdaac35b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/demo-cta-footer.js"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-1fbbfc74c8e3bdec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/subdomain-access-control.js:309"}, "properties": {"repobilityId": "0e6533e376c884e9", "scanner": "scanner-primary", "fingerprint": "1fbbfc74c8e3bdec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/subdomain-access-control.js"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-73d85651a919f517", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in js/subdomain-access-control.js:387"}, "properties": {"repobilityId": "ede35c1ae59c4817", "scanner": "scanner-primary", "fingerprint": "73d85651a919f517", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/subdomain-access-control.js"}, "region": {"startLine": 387}}}]}, {"ruleId": "scanner-d2c4dddce8439831", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/learning-path.js:400"}, "properties": {"repobilityId": "62e3cdf53949740d", "scanner": "scanner-primary", "fingerprint": "d2c4dddce8439831", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/learning-path.js"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-efc8374e4af00711", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/mobile-menu.js:20"}, "properties": {"repobilityId": "2de21e6d8d7b4e37", "scanner": "scanner-primary", "fingerprint": "efc8374e4af00711", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/mobile-menu.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-fcf2ddbdac481eb2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/gemini-tutor-ui.js:42"}, "properties": {"repobilityId": "fc28fc0e48ff723c", "scanner": "scanner-primary", "fingerprint": "fcf2ddbdac481eb2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/gemini-tutor-ui.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-ebb8ac6ac95805f6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/module-progress.js:123"}, "properties": {"repobilityId": "99cfb119fa6bf637", "scanner": "scanner-primary", "fingerprint": "ebb8ac6ac95805f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/module-progress.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-00618203784eff6b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/safety-banner.js:50"}, "properties": {"repobilityId": "ae6f129fd42280f5", "scanner": "scanner-primary", "fingerprint": "00618203784eff6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/safety-banner.js"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-ce6fd6c62fbde2f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/safety-assessment.js:124"}, "properties": {"repobilityId": "bac76dbe644fbb07", "scanner": "scanner-primary", "fingerprint": "ce6fd6c62fbde2f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/safety-assessment.js"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-8a2f3c03cb2bdbd7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/lab-guide.js:1318"}, "properties": {"repobilityId": "7d2d9a7a362029bf", "scanner": "scanner-primary", "fingerprint": "8a2f3c03cb2bdbd7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/lab-guide.js"}, "region": {"startLine": 1318}}}]}, {"ruleId": "scanner-a11233a7c582e016", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in js/lab-guide.js:1295"}, "properties": {"repobilityId": "4d6a6e1193fd4c20", "scanner": "scanner-primary", "fingerprint": "a11233a7c582e016", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/lab-guide.js"}, "region": {"startLine": 1295}}}]}, {"ruleId": "scanner-148bc1e401cad7bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/payment-access-control.js:303"}, "properties": {"repobilityId": "0785be6a66527b3d", "scanner": "scanner-primary", "fingerprint": "148bc1e401cad7bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/payment-access-control.js"}, "region": {"startLine": 303}}}]}, {"ruleId": "scanner-aff46b3998af64ab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/bitcoin-context.js:99"}, "properties": {"repobilityId": "a2e01fd4c29e8cd9", "scanner": "scanner-primary", "fingerprint": "aff46b3998af64ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/bitcoin-context.js"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-2b5dd68e1461d72b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/navigation-context.js:165"}, "properties": {"repobilityId": "07260d2b801d261e", "scanner": "scanner-primary", "fingerprint": "2b5dd68e1461d72b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/navigation-context.js"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-aa2ebbc60da03e2f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/tip-cta.js:298"}, "properties": {"repobilityId": "85b9c8f3d6d6c15d", "scanner": "scanner-primary", "fingerprint": "aa2ebbc60da03e2f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/tip-cta.js"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-c72019f65e68f67a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in js/utils/ab-testing.ts:156"}, "properties": {"repobilityId": "faec5b8c0d414b31", "scanner": "scanner-primary", "fingerprint": "c72019f65e68f67a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/utils/ab-testing.ts"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-62f7fcc257395be1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/utils/certification-engine.ts:646"}, "properties": {"repobilityId": "16034ddaa40cae99", "scanner": "scanner-primary", "fingerprint": "62f7fcc257395be1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/utils/certification-engine.ts"}, "region": {"startLine": 646}}}]}, {"ruleId": "scanner-a008ca41276f3acc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/network-stats.js:156"}, "properties": {"repobilityId": "e80fd105043d2c6e", "scanner": "scanner-primary", "fingerprint": "a008ca41276f3acc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/widgets/network-stats.js"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-2cad9fcb14b170d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/news-ticker.js:83"}, "properties": {"repobilityId": "7e185b70c13186c5", "scanner": "scanner-primary", "fingerprint": "2cad9fcb14b170d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/widgets/news-ticker.js"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-05ee5c7dcf4f7110", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/quiz.js:118"}, "properties": {"repobilityId": "53dfca752a2b0fac", "scanner": "scanner-primary", "fingerprint": "05ee5c7dcf4f7110", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/widgets/quiz.js"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-a93dc7f60ed561b1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/widgets/live-market-data.js:114"}, "properties": {"repobilityId": "46f6101700e7b821", "scanner": "scanner-primary", "fingerprint": "a93dc7f60ed561b1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/widgets/live-market-data.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-8f681e998099cec7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/replace-emojis.js:102"}, "properties": {"repobilityId": "faf3495b1cb2e784", "scanner": "scanner-primary", "fingerprint": "8f681e998099cec7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/replace-emojis.js"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-169898fa3313d837", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/replace-emojis.cjs:93"}, "properties": {"repobilityId": "a4dcdd57c7435aaf", "scanner": "scanner-primary", "fingerprint": "169898fa3313d837", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/replace-emojis.cjs"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-83054d8e56436c70", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-06/index.html:600"}, "properties": {"repobilityId": "bcfe053bcdabeef0", "scanner": "scanner-primary", "fingerprint": "83054d8e56436c70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "youth-families/week-06/index.html"}, "region": {"startLine": 600}}}]}, {"ruleId": "scanner-3f7097742aa8cfe2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-03/index.html:558"}, "properties": {"repobilityId": "cf563f9334e657c1", "scanner": "scanner-primary", "fingerprint": "3f7097742aa8cfe2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "youth-families/week-03/index.html"}, "region": {"startLine": 558}}}]}, {"ruleId": "scanner-e39a3a6560e99e90", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-01/index.html:568"}, "properties": {"repobilityId": "493555e5e0d3e517", "scanner": "scanner-primary", "fingerprint": "e39a3a6560e99e90", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "youth-families/week-01/index.html"}, "region": {"startLine": 568}}}]}, {"ruleId": "scanner-a7fe6765edb5eb9e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in youth-families/week-07/index.html:557"}, "properties": {"repobilityId": "c08a914484e242bd", "scanner": "scanner-primary", "fingerprint": "a7fe6765edb5eb9e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "youth-families/week-07/index.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-16294c7091aad203", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in components/content-lock.js:140"}, "properties": {"repobilityId": "8ef1f055bc9ba368", "scanner": "scanner-primary", "fingerprint": "16294c7091aad203", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/content-lock.js"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-051d72353200c710", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-tutors/index.html:368"}, "properties": {"repobilityId": "794f40da095f6ee1", "scanner": "scanner-primary", "fingerprint": "051d72353200c710", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ai-tutors/index.html"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-31668b4861c9aa5c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign-journey-intro.html:811"}, "properties": {"repobilityId": "9a9c297068a0f43a", "scanner": "scanner-primary", "fingerprint": "31668b4861c9aa5c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign-journey-intro.html"}, "region": {"startLine": 811}}}]}, {"ruleId": "scanner-2ce38eba554a8e19", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/index.html:897"}, "properties": {"repobilityId": "fff0d87a31ba0366", "scanner": "scanner-primary", "fingerprint": "2ce38eba554a8e19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/index.html"}, "region": {"startLine": 897}}}]}, {"ruleId": "scanner-848d66ad9c5fd638", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-1.html:1068"}, "properties": {"repobilityId": "2ac8eccd955eccb4", "scanner": "scanner-primary", "fingerprint": "848d66ad9c5fd638", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-2/module-1.html"}, "region": {"startLine": 1068}}}]}, {"ruleId": "scanner-aca893883afc7cf8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-2.html:1925"}, "properties": {"repobilityId": "a77f4321d493f865", "scanner": "scanner-primary", "fingerprint": "aca893883afc7cf8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-2/module-2.html"}, "region": {"startLine": 1925}}}]}, {"ruleId": "scanner-995da276996036ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/index.html:489"}, "properties": {"repobilityId": "7bdf572f00a98f1c", "scanner": "scanner-primary", "fingerprint": "995da276996036ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-2/index.html"}, "region": {"startLine": 489}}}]}, {"ruleId": "scanner-86158603ab4107c8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-2/module-3.html:1047"}, "properties": {"repobilityId": "7306437bb972f608", "scanner": "scanner-primary", "fingerprint": "86158603ab4107c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-2/module-3.html"}, "region": {"startLine": 1047}}}]}, {"ruleId": "scanner-e3d0a9501a2f8273", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-1.html:949"}, "properties": {"repobilityId": "236a798ffc7f04de", "scanner": "scanner-primary", "fingerprint": "e3d0a9501a2f8273", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/module-1.html"}, "region": {"startLine": 949}}}]}, {"ruleId": "scanner-4865e968944f5474", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/fees-utxo-guide.html:572"}, "properties": {"repobilityId": "dbae487ffe50cb03", "scanner": "scanner-primary", "fingerprint": "4865e968944f5474", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/fees-utxo-guide.html"}, "region": {"startLine": 572}}}]}, {"ruleId": "scanner-1af064aa8e590bb6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/proofs-not-promises.html:573"}, "properties": {"repobilityId": "c007364d8fc9286f", "scanner": "scanner-primary", "fingerprint": "1af064aa8e590bb6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/proofs-not-promises.html"}, "region": {"startLine": 573}}}]}, {"ruleId": "scanner-444897bd719503cf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/scam-defense.html:591"}, "properties": {"repobilityId": "dd74f8f7fb736704", "scanner": "scanner-primary", "fingerprint": "444897bd719503cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/scam-defense.html"}, "region": {"startLine": 591}}}]}, {"ruleId": "scanner-5fc9602104325a4c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/alternatives-to-bitcoin.html:1113"}, "properties": {"repobilityId": "059bd615c3f8f541", "scanner": "scanner-primary", "fingerprint": "5fc9602104325a4c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/alternatives-to-bitcoin.html"}, "region": {"startLine": 1113}}}]}, {"ruleId": "scanner-4669b5bdf5a22383", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-2.html:793"}, "properties": {"repobilityId": "d3ee3c1418988b12", "scanner": "scanner-primary", "fingerprint": "4669b5bdf5a22383", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/module-2.html"}, "region": {"startLine": 793}}}]}, {"ruleId": "scanner-86aecaf8f087700e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/index.html:589"}, "properties": {"repobilityId": "d2ef26038d98cdc8", "scanner": "scanner-primary", "fingerprint": "86aecaf8f087700e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/index.html"}, "region": {"startLine": 589}}}]}, {"ruleId": "scanner-a46787b7dd53b5a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/module-3.html:949"}, "properties": {"repobilityId": "bc0d0bba8ed8f53e", "scanner": "scanner-primary", "fingerprint": "a46787b7dd53b5a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/module-3.html"}, "region": {"startLine": 949}}}]}, {"ruleId": "scanner-f99c2e10198f29ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-3/collaborative-security.html:777"}, "properties": {"repobilityId": "d831743e266c34be", "scanner": "scanner-primary", "fingerprint": "f99c2e10198f29ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-3/collaborative-security.html"}, "region": {"startLine": 777}}}]}, {"ruleId": "scanner-8120d6f0a5e24a80", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-1.html:949"}, "properties": {"repobilityId": "4908da47c3717202", "scanner": "scanner-primary", "fingerprint": "8120d6f0a5e24a80", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-4/module-1.html"}, "region": {"startLine": 949}}}]}, {"ruleId": "scanner-81657baa39a9dcb7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-2.html:863"}, "properties": {"repobilityId": "036898e9e9dac8c7", "scanner": "scanner-primary", "fingerprint": "81657baa39a9dcb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-4/module-2.html"}, "region": {"startLine": 863}}}]}, {"ruleId": "scanner-015737c8c0ab8821", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/index.html:486"}, "properties": {"repobilityId": "4d2364e126f074a4", "scanner": "scanner-primary", "fingerprint": "015737c8c0ab8821", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-4/index.html"}, "region": {"startLine": 486}}}]}, {"ruleId": "scanner-e1ebd8454e7a39b9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-4/module-3.html:837"}, "properties": {"repobilityId": "4cb0ade70eb2bd1c", "scanner": "scanner-primary", "fingerprint": "e1ebd8454e7a39b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-4/module-3.html"}, "region": {"startLine": 837}}}]}, {"ruleId": "scanner-cbcb58158ecb1857", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-1.html:1558"}, "properties": {"repobilityId": "e55f8d8bfe596293", "scanner": "scanner-primary", "fingerprint": "cbcb58158ecb1857", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-1/module-1.html"}, "region": {"startLine": 1558}}}]}, {"ruleId": "scanner-19c4d539cd6ed2dd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-2.html:1626"}, "properties": {"repobilityId": "9091efdd59ca43c1", "scanner": "scanner-primary", "fingerprint": "19c4d539cd6ed2dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-1/module-2.html"}, "region": {"startLine": 1626}}}]}, {"ruleId": "scanner-e455d7541393ae47", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/index.html:538"}, "properties": {"repobilityId": "4b13b50da64aa75a", "scanner": "scanner-primary", "fingerprint": "e455d7541393ae47", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-1/index.html"}, "region": {"startLine": 538}}}]}, {"ruleId": "scanner-4c3c6256f123d831", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/sovereign/stage-1/module-3.html:2226"}, "properties": {"repobilityId": "a74d67c584916bec", "scanner": "scanner-primary", "fingerprint": "4c3c6256f123d831", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/sovereign/stage-1/module-3.html"}, "region": {"startLine": 2226}}}]}, {"ruleId": "scanner-fa80d71a15088feb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/index.html:938"}, "properties": {"repobilityId": "e8eff35c12559199", "scanner": "scanner-primary", "fingerprint": "fa80d71a15088feb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/index.html"}, "region": {"startLine": 938}}}]}, {"ruleId": "scanner-8d90aebefc642c42", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-1.html:1135"}, "properties": {"repobilityId": "422fcb102e3313ae", "scanner": "scanner-primary", "fingerprint": "8d90aebefc642c42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-2/module-1.html"}, "region": {"startLine": 1135}}}]}, {"ruleId": "scanner-473091f7be5c9be8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-2.html:1198"}, "properties": {"repobilityId": "a73f0d82b089fa51", "scanner": "scanner-primary", "fingerprint": "473091f7be5c9be8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-2/module-2.html"}, "region": {"startLine": 1198}}}]}, {"ruleId": "scanner-5d75631b50ef6a6a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/index.html:501"}, "properties": {"repobilityId": "77ce70edac9e9114", "scanner": "scanner-primary", "fingerprint": "5d75631b50ef6a6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-2/index.html"}, "region": {"startLine": 501}}}]}, {"ruleId": "scanner-d4e6601043c33e02", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-2/module-3.html:1170"}, "properties": {"repobilityId": "f863ffce6536f5ff", "scanner": "scanner-primary", "fingerprint": "d4e6601043c33e02", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-2/module-3.html"}, "region": {"startLine": 1170}}}]}, {"ruleId": "scanner-7e66c3bcc48eda3b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-1.html:762"}, "properties": {"repobilityId": "cef897d2757bfff1", "scanner": "scanner-primary", "fingerprint": "7e66c3bcc48eda3b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-3/module-1.html"}, "region": {"startLine": 762}}}]}, {"ruleId": "scanner-9a7db22eb7bdb8fa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-2.html:824"}, "properties": {"repobilityId": "7f5753a3a308fa4d", "scanner": "scanner-primary", "fingerprint": "9a7db22eb7bdb8fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-3/module-2.html"}, "region": {"startLine": 824}}}]}, {"ruleId": "scanner-adf2a4574e256518", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/index.html:551"}, "properties": {"repobilityId": "e48551c794548092", "scanner": "scanner-primary", "fingerprint": "adf2a4574e256518", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-3/index.html"}, "region": {"startLine": 551}}}]}, {"ruleId": "scanner-2562f19115b9121a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-3/module-3.html:864"}, "properties": {"repobilityId": "349e668ea1c4ceed", "scanner": "scanner-primary", "fingerprint": "2562f19115b9121a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-3/module-3.html"}, "region": {"startLine": 864}}}]}, {"ruleId": "scanner-93c587ae39fa9c9b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-1.html:913"}, "properties": {"repobilityId": "db3fd64c883364e6", "scanner": "scanner-primary", "fingerprint": "93c587ae39fa9c9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-4/module-1.html"}, "region": {"startLine": 913}}}]}, {"ruleId": "scanner-73db5d849a72a6a0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-2.html:881"}, "properties": {"repobilityId": "27df8300bd63104a", "scanner": "scanner-primary", "fingerprint": "73db5d849a72a6a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-4/module-2.html"}, "region": {"startLine": 881}}}]}, {"ruleId": "scanner-212df639a3b26050", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/index.html:636"}, "properties": {"repobilityId": "46f23b438a61ae2f", "scanner": "scanner-primary", "fingerprint": "212df639a3b26050", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-4/index.html"}, "region": {"startLine": 636}}}]}, {"ruleId": "scanner-13cd6ebe94204cc2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-4/module-3.html:1363"}, "properties": {"repobilityId": "71e6a3a00871feb7", "scanner": "scanner-primary", "fingerprint": "13cd6ebe94204cc2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-4/module-3.html"}, "region": {"startLine": 1363}}}]}, {"ruleId": "scanner-b94a7b811f71179f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-1.html:2184"}, "properties": {"repobilityId": "1ca36dff9bca1e52", "scanner": "scanner-primary", "fingerprint": "b94a7b811f71179f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/module-1.html"}, "region": {"startLine": 2184}}}]}, {"ruleId": "scanner-3cbab00511997f3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-2-5.html:721"}, "properties": {"repobilityId": "2cda247215900053", "scanner": "scanner-primary", "fingerprint": "3cbab00511997f3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/module-2-5.html"}, "region": {"startLine": 721}}}]}, {"ruleId": "scanner-bfb0ec2e6e46ad55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-2.html:1439"}, "properties": {"repobilityId": "f648e9239a23f5c9", "scanner": "scanner-primary", "fingerprint": "bfb0ec2e6e46ad55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/module-2.html"}, "region": {"startLine": 1439}}}]}, {"ruleId": "scanner-1f92eb784901cfca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/index.html:518"}, "properties": {"repobilityId": "67b30844c4f96440", "scanner": "scanner-primary", "fingerprint": "1f92eb784901cfca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/index.html"}, "region": {"startLine": 518}}}]}, {"ruleId": "scanner-a0e41f993f18941d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/module-3.html:1291"}, "properties": {"repobilityId": "bd928760082f3393", "scanner": "scanner-primary", "fingerprint": "a0e41f993f18941d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/module-3.html"}, "region": {"startLine": 1291}}}]}, {"ruleId": "scanner-fa65198880a9f37f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/deep-dives/money-creation.html:927"}, "properties": {"repobilityId": "cc2a7164530753d9", "scanner": "scanner-primary", "fingerprint": "fa65198880a9f37f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/deep-dives/money-creation.html"}, "region": {"startLine": 927}}}]}, {"ruleId": "scanner-9409eac43e9c4a88", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/deep-dives/fractional-reserve.html:478"}, "properties": {"repobilityId": "1671e05a10bd7231", "scanner": "scanner-primary", "fingerprint": "9409eac43e9c4a88", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/deep-dives/fractional-reserve.html"}, "region": {"startLine": 478}}}]}, {"ruleId": "scanner-ab1f4b59d0c0b90f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-1.html:2185"}, "properties": {"repobilityId": "ea60ae8a9893701e", "scanner": "scanner-primary", "fingerprint": "ab1f4b59d0c0b90f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/es/module-1.html"}, "region": {"startLine": 2185}}}]}, {"ruleId": "scanner-db604728837e9e69", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-2.html:1440"}, "properties": {"repobilityId": "df93af83926ee587", "scanner": "scanner-primary", "fingerprint": "db604728837e9e69", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/es/module-2.html"}, "region": {"startLine": 1440}}}]}, {"ruleId": "scanner-40d39fb6b81906c0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/curious/stage-1/es/module-3.html:1292"}, "properties": {"repobilityId": "0717ccc60ddb08a9", "scanner": "scanner-primary", "fingerprint": "40d39fb6b81906c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/curious/stage-1/es/module-3.html"}, "region": {"startLine": 1292}}}]}, {"ruleId": "scanner-10b240203cbbc2c0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/index.html:438"}, "properties": {"repobilityId": "c05638a3f54f8823", "scanner": "scanner-primary", "fingerprint": "10b240203cbbc2c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/index.html"}, "region": {"startLine": 438}}}]}, {"ruleId": "scanner-ede9c19df23e62be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-2/module-4.html:532"}, "properties": {"repobilityId": "4fcc159bf9340fbe", "scanner": "scanner-primary", "fingerprint": "ede9c19df23e62be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-2/module-4.html"}, "region": {"startLine": 532}}}]}, {"ruleId": "scanner-d90a3921cd14eba7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-2/module-5.html:339"}, "properties": {"repobilityId": "328d6b6629688f8f", "scanner": "scanner-primary", "fingerprint": "d90a3921cd14eba7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-2/module-5.html"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-de2ea60e5167382b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-3/module-6.html:458"}, "properties": {"repobilityId": "dff1f7ce0bf6e45b", "scanner": "scanner-primary", "fingerprint": "de2ea60e5167382b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-3/module-6.html"}, "region": {"startLine": 458}}}]}, {"ruleId": "scanner-3647cfd582c577fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-3/module-7.html:472"}, "properties": {"repobilityId": "20887eed8a996426", "scanner": "scanner-primary", "fingerprint": "3647cfd582c577fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-3/module-7.html"}, "region": {"startLine": 472}}}]}, {"ruleId": "scanner-4ee70806ffd68736", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-1.html:777"}, "properties": {"repobilityId": "7aa5db07a1af527e", "scanner": "scanner-primary", "fingerprint": "4ee70806ffd68736", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-1/module-1.html"}, "region": {"startLine": 777}}}]}, {"ruleId": "scanner-8d7c03e16934d3f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-2.html:437"}, "properties": {"repobilityId": "59b7c5515aef9337", "scanner": "scanner-primary", "fingerprint": "8d7c03e16934d3f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-1/module-2.html"}, "region": {"startLine": 437}}}]}, {"ruleId": "scanner-5451b1a0449e5078", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/hurried/stage-1/module-3.html:519"}, "properties": {"repobilityId": "adc3768b524d3aab", "scanner": "scanner-primary", "fingerprint": "5451b1a0449e5078", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/hurried/stage-1/module-3.html"}, "region": {"startLine": 519}}}]}, {"ruleId": "scanner-550da668cca5e81d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/skeptic/index.html:633"}, "properties": {"repobilityId": "86fd04432bf7db83", "scanner": "scanner-primary", "fingerprint": "550da668cca5e81d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/skeptic/index.html"}, "region": {"startLine": 633}}}]}, {"ruleId": "scanner-d87a2880b54ee6ad", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/skeptic/stage-1/index.html:920"}, "properties": {"repobilityId": "9309dc2c74da9348", "scanner": "scanner-primary", "fingerprint": "d87a2880b54ee6ad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/skeptic/stage-1/index.html"}, "region": {"startLine": 920}}}]}, {"ruleId": "scanner-caae2e6e64500aaf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/index.html:695"}, "properties": {"repobilityId": "36304eed7ab9b32d", "scanner": "scanner-primary", "fingerprint": "caae2e6e64500aaf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/index.html"}, "region": {"startLine": 695}}}]}, {"ruleId": "scanner-aff4cab2e1ffff58", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-5-security.html:520"}, "properties": {"repobilityId": "cd783b12d4f2ca6c", "scanner": "scanner-primary", "fingerprint": "aff4cab2e1ffff58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-2/module-5-security.html"}, "region": {"startLine": 520}}}]}, {"ruleId": "scanner-fad424c7501fb9ff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/bank-friction.html:358"}, "properties": {"repobilityId": "a72617a6dd7007df", "scanner": "scanner-primary", "fingerprint": "fad424c7501fb9ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-2/bank-friction.html"}, "region": {"startLine": 358}}}]}, {"ruleId": "scanner-970a4aaa2568632c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-6-lightning.html:504"}, "properties": {"repobilityId": "d1075da2a71c09da", "scanner": "scanner-primary", "fingerprint": "970a4aaa2568632c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-2/module-6-lightning.html"}, "region": {"startLine": 504}}}]}, {"ruleId": "scanner-a30f5275eff82312", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-2/module-7-economics.html:285"}, "properties": {"repobilityId": "aafd7dd24e74ccb6", "scanner": "scanner-primary", "fingerprint": "a30f5275eff82312", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-2/module-7-economics.html"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-4924768ee64711aa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-3/module-8-privacy-tax.html:352"}, "properties": {"repobilityId": "b46b0cf34dff3f5f", "scanner": "scanner-primary", "fingerprint": "4924768ee64711aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-3/module-8-privacy-tax.html"}, "region": {"startLine": 352}}}]}, {"ruleId": "scanner-e40bf3d2f94570c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-3/module-9-real-life.html:377"}, "properties": {"repobilityId": "2ac4a15b16ac73ee", "scanner": "scanner-primary", "fingerprint": "e40bf3d2f94570c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-3/module-9-real-life.html"}, "region": {"startLine": 377}}}]}, {"ruleId": "scanner-4b7769c395066474", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-1.html:1087"}, "properties": {"repobilityId": "967d1e1d35845d52", "scanner": "scanner-primary", "fingerprint": "4b7769c395066474", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-1/module-1.html"}, "region": {"startLine": 1087}}}]}, {"ruleId": "scanner-a4f9355dae6e4c4e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-2.html:473"}, "properties": {"repobilityId": "4a417e503e03e7de", "scanner": "scanner-primary", "fingerprint": "a4f9355dae6e4c4e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-1/module-2.html"}, "region": {"startLine": 473}}}]}, {"ruleId": "scanner-98b9e48f34650b1c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-3.html:525"}, "properties": {"repobilityId": "843200292bfb4e7d", "scanner": "scanner-primary", "fingerprint": "98b9e48f34650b1c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-1/module-3.html"}, "region": {"startLine": 525}}}]}, {"ruleId": "scanner-3457f61104ec4650", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/pragmatist/stage-1/module-4.html:637"}, "properties": {"repobilityId": "5b5b5c39f682aa8f", "scanner": "scanner-primary", "fingerprint": "3457f61104ec4650", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/pragmatist/stage-1/module-4.html"}, "region": {"startLine": 637}}}]}, {"ruleId": "scanner-d13a2ff4ffaadb7f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/index.html:1478"}, "properties": {"repobilityId": "d88776517dcccba6", "scanner": "scanner-primary", "fingerprint": "d13a2ff4ffaadb7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/index.html"}, "region": {"startLine": 1478}}}]}, {"ruleId": "scanner-7a38a36bf90fa50e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-1.html:1457"}, "properties": {"repobilityId": "8885425e982a9bb3", "scanner": "scanner-primary", "fingerprint": "7a38a36bf90fa50e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-2/module-1.html"}, "region": {"startLine": 1457}}}]}, {"ruleId": "scanner-7722b61a45516671", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-2.html:861"}, "properties": {"repobilityId": "3f53741b462e6ef6", "scanner": "scanner-primary", "fingerprint": "7722b61a45516671", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-2/module-2.html"}, "region": {"startLine": 861}}}]}, {"ruleId": "scanner-55e3acf77abfce94", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/index.html:627"}, "properties": {"repobilityId": "d7d451ede5397853", "scanner": "scanner-primary", "fingerprint": "55e3acf77abfce94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-2/index.html"}, "region": {"startLine": 627}}}]}, {"ruleId": "scanner-adec2bd7b99bcfe0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-3.html:808"}, "properties": {"repobilityId": "9c0a9995f83059cd", "scanner": "scanner-primary", "fingerprint": "adec2bd7b99bcfe0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-2/module-3.html"}, "region": {"startLine": 808}}}]}, {"ruleId": "scanner-214379ddad692bb7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-2/module-4.html:1048"}, "properties": {"repobilityId": "06f9446d8a158e74", "scanner": "scanner-primary", "fingerprint": "214379ddad692bb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-2/module-4.html"}, "region": {"startLine": 1048}}}]}, {"ruleId": "scanner-0d0701ff6113b61e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-1.html:1064"}, "properties": {"repobilityId": "01e62e547a0f611d", "scanner": "scanner-primary", "fingerprint": "0d0701ff6113b61e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-3/module-1.html"}, "region": {"startLine": 1064}}}]}, {"ruleId": "scanner-da70a926e8478d80", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-2.html:1158"}, "properties": {"repobilityId": "5c55dc2df95f8ea7", "scanner": "scanner-primary", "fingerprint": "da70a926e8478d80", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-3/module-2.html"}, "region": {"startLine": 1158}}}]}, {"ruleId": "scanner-64eefc8d0afb55f4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/index.html:584"}, "properties": {"repobilityId": "aa1c8d8935bb346f", "scanner": "scanner-primary", "fingerprint": "64eefc8d0afb55f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-3/index.html"}, "region": {"startLine": 584}}}]}, {"ruleId": "scanner-87ebd6b440b1d19f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-3/module-3.html:1342"}, "properties": {"repobilityId": "de06dfcf278b62de", "scanner": "scanner-primary", "fingerprint": "87ebd6b440b1d19f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-3/module-3.html"}, "region": {"startLine": 1342}}}]}, {"ruleId": "scanner-b25c328fda59a9bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-1.html:1057"}, "properties": {"repobilityId": "0ad9ac5ab8ab74db", "scanner": "scanner-primary", "fingerprint": "b25c328fda59a9bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-4/module-1.html"}, "region": {"startLine": 1057}}}]}, {"ruleId": "scanner-fb57534a0fd320ee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-2.html:1242"}, "properties": {"repobilityId": "a1e24f12fc834522", "scanner": "scanner-primary", "fingerprint": "fb57534a0fd320ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-4/module-2.html"}, "region": {"startLine": 1242}}}]}, {"ruleId": "scanner-8e56a3153c4dd3b6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/index.html:632"}, "properties": {"repobilityId": "44e71cf31ea6caae", "scanner": "scanner-primary", "fingerprint": "8e56a3153c4dd3b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-4/index.html"}, "region": {"startLine": 632}}}]}, {"ruleId": "scanner-7559acfc5388ad33", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-4/module-3.html:1387"}, "properties": {"repobilityId": "0c882785fbf2afbf", "scanner": "scanner-primary", "fingerprint": "7559acfc5388ad33", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-4/module-3.html"}, "region": {"startLine": 1387}}}]}, {"ruleId": "scanner-5dfa54ad92e558e6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-1.html:762"}, "properties": {"repobilityId": "d2b614852c284b96", "scanner": "scanner-primary", "fingerprint": "5dfa54ad92e558e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-1/module-1.html"}, "region": {"startLine": 762}}}]}, {"ruleId": "scanner-9a4c7ebd2b718be0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-2.html:504"}, "properties": {"repobilityId": "3e466006095dae67", "scanner": "scanner-primary", "fingerprint": "9a4c7ebd2b718be0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-1/module-2.html"}, "region": {"startLine": 504}}}]}, {"ruleId": "scanner-d0a912d28ddf2f08", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/index.html:584"}, "properties": {"repobilityId": "dcdc80e5ba139c55", "scanner": "scanner-primary", "fingerprint": "d0a912d28ddf2f08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-1/index.html"}, "region": {"startLine": 584}}}]}, {"ruleId": "scanner-7b51f0efba211da1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/builder/stage-1/module-3.html:672"}, "properties": {"repobilityId": "711e881b2fdd7ffa", "scanner": "scanner-primary", "fingerprint": "7b51f0efba211da1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/builder/stage-1/module-3.html"}, "region": {"startLine": 672}}}]}, {"ruleId": "scanner-e6bcb1ab2d58baaf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/index.html:908"}, "properties": {"repobilityId": "1c3d56df783b7049", "scanner": "scanner-primary", "fingerprint": "e6bcb1ab2d58baaf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/index.html"}, "region": {"startLine": 908}}}]}, {"ruleId": "scanner-5e790e1a605ce93f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-1.html:959"}, "properties": {"repobilityId": "c36fa8a12b7921e1", "scanner": "scanner-primary", "fingerprint": "5e790e1a605ce93f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-2/module-1.html"}, "region": {"startLine": 959}}}]}, {"ruleId": "scanner-edc85842f4fefa86", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-2.html:848"}, "properties": {"repobilityId": "a1f17c967ceb4fef", "scanner": "scanner-primary", "fingerprint": "edc85842f4fefa86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-2/module-2.html"}, "region": {"startLine": 848}}}]}, {"ruleId": "scanner-ced8c282a9560035", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/index.html:283"}, "properties": {"repobilityId": "80dfa348fe811c9e", "scanner": "scanner-primary", "fingerprint": "ced8c282a9560035", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-2/index.html"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-34239892dcafc081", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-2/module-3.html:1022"}, "properties": {"repobilityId": "94b7a866207e18cb", "scanner": "scanner-primary", "fingerprint": "34239892dcafc081", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-2/module-3.html"}, "region": {"startLine": 1022}}}]}, {"ruleId": "scanner-a8cb20dd336c5404", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-1.html:783"}, "properties": {"repobilityId": "1d9817583f373b96", "scanner": "scanner-primary", "fingerprint": "a8cb20dd336c5404", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-5/module-1.html"}, "region": {"startLine": 783}}}]}, {"ruleId": "scanner-94163aefb6c60ebd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-2.html:950"}, "properties": {"repobilityId": "8b141c7792786312", "scanner": "scanner-primary", "fingerprint": "94163aefb6c60ebd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-5/module-2.html"}, "region": {"startLine": 950}}}]}, {"ruleId": "scanner-fbcf552bfc997fb8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/index.html:288"}, "properties": {"repobilityId": "5c3b081d15cbbdaf", "scanner": "scanner-primary", "fingerprint": "fbcf552bfc997fb8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-5/index.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-5c7bee560659f5ab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-5/module-3.html:1119"}, "properties": {"repobilityId": "af02226c0483af2d", "scanner": "scanner-primary", "fingerprint": "5c7bee560659f5ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-5/module-3.html"}, "region": {"startLine": 1119}}}]}, {"ruleId": "scanner-cd04544975daeec4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-1.html:1098"}, "properties": {"repobilityId": "c742e5dacf2f701a", "scanner": "scanner-primary", "fingerprint": "cd04544975daeec4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-3/module-1.html"}, "region": {"startLine": 1098}}}]}, {"ruleId": "scanner-23a8f411a09d9c79", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-2.html:1052"}, "properties": {"repobilityId": "8bb8a1a7058a1f13", "scanner": "scanner-primary", "fingerprint": "23a8f411a09d9c79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-3/module-2.html"}, "region": {"startLine": 1052}}}]}, {"ruleId": "scanner-5432cc5e3b775606", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/index.html:236"}, "properties": {"repobilityId": "5c90977faf97e15b", "scanner": "scanner-primary", "fingerprint": "5432cc5e3b775606", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-3/index.html"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-edef6eb65f6ca3db", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-3/module-3.html:1095"}, "properties": {"repobilityId": "b3b323a465d45ac7", "scanner": "scanner-primary", "fingerprint": "edef6eb65f6ca3db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-3/module-3.html"}, "region": {"startLine": 1095}}}]}, {"ruleId": "scanner-93a821870155919c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-1.html:899"}, "properties": {"repobilityId": "58482d18a81f3094", "scanner": "scanner-primary", "fingerprint": "93a821870155919c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-4/module-1.html"}, "region": {"startLine": 899}}}]}, {"ruleId": "scanner-2af7ec9e420d2b6c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-2.html:991"}, "properties": {"repobilityId": "4a1a654a0ad79b5b", "scanner": "scanner-primary", "fingerprint": "2af7ec9e420d2b6c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-4/module-2.html"}, "region": {"startLine": 991}}}]}, {"ruleId": "scanner-dbf68b114554da99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/index.html:209"}, "properties": {"repobilityId": "4f1e882d0699385e", "scanner": "scanner-primary", "fingerprint": "dbf68b114554da99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-4/index.html"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-a6cba3b9227b45a1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-4/module-3.html:1116"}, "properties": {"repobilityId": "0c475d9a6bb1a228", "scanner": "scanner-primary", "fingerprint": "a6cba3b9227b45a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-4/module-3.html"}, "region": {"startLine": 1116}}}]}, {"ruleId": "scanner-1b279edb8e0ba577", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-1.html:921"}, "properties": {"repobilityId": "ab878ee564fdce5c", "scanner": "scanner-primary", "fingerprint": "1b279edb8e0ba577", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-1/module-1.html"}, "region": {"startLine": 921}}}]}, {"ruleId": "scanner-f4f9c47c4c503509", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-2.html:877"}, "properties": {"repobilityId": "206df68685326499", "scanner": "scanner-primary", "fingerprint": "f4f9c47c4c503509", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-1/module-2.html"}, "region": {"startLine": 877}}}]}, {"ruleId": "scanner-fd0c403070bac021", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/index.html:289"}, "properties": {"repobilityId": "664641461f5cd273", "scanner": "scanner-primary", "fingerprint": "fd0c403070bac021", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-1/index.html"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-03c895a58d8df374", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/stage-1/module-3.html:898"}, "properties": {"repobilityId": "7162e08f5864199e", "scanner": "scanner-primary", "fingerprint": "03c895a58d8df374", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/stage-1/module-3.html"}, "region": {"startLine": 898}}}]}, {"ruleId": "scanner-a44cd03ed4e0ee88", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in paths/principled/capstone/index.html:382"}, "properties": {"repobilityId": "dd155e403f1cc830", "scanner": "scanner-primary", "fingerprint": "a44cd03ed4e0ee88", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paths/principled/capstone/index.html"}, "region": {"startLine": 382}}}]}, {"ruleId": "scanner-c6b53f4cf8a83202", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in assets/snippets/kit-checkout.js:13"}, "properties": {"repobilityId": "cc2ee683f859a008", "scanner": "scanner-primary", "fingerprint": "c6b53f4cf8a83202", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "assets/snippets/kit-checkout.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-334b7cd6475b4a15", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in challenges/index.html:307"}, "properties": {"repobilityId": "ff50d777b4cd2331", "scanner": "scanner-primary", "fingerprint": "334b7cd6475b4a15", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "challenges/index.html"}, "region": {"startLine": 307}}}]}, {"ruleId": "scanner-b776a1dc7b9c1e66", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-ira-decision-tool.html:1512"}, "properties": {"repobilityId": "f017c4a79d1ce810", "scanner": "scanner-primary", "fingerprint": "b776a1dc7b9c1e66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-ira-decision-tool.html"}, "region": {"startLine": 1512}}}]}, {"ruleId": "scanner-04df61b0e98654f6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/security-risk-simulator.html:1119"}, "properties": {"repobilityId": "1e033f3ae655f0f2", "scanner": "scanner-primary", "fingerprint": "04df61b0e98654f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/security-risk-simulator.html"}, "region": {"startLine": 1119}}}]}, {"ruleId": "scanner-a984c0b7e352a676", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/index.html:885"}, "properties": {"repobilityId": "8e5392485b91137e", "scanner": "scanner-primary", "fingerprint": "a984c0b7e352a676", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/index.html"}, "region": {"startLine": 885}}}]}, {"ruleId": "scanner-820b2013e5bd4fc0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-simulator/index.html:735"}, "properties": {"repobilityId": "c5568bea6c891ad4", "scanner": "scanner-primary", "fingerprint": "820b2013e5bd4fc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mining-simulator/index.html"}, "region": {"startLine": 735}}}]}, {"ruleId": "scanner-611b6cb966ca9263", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-simulator/mining-enhanced.js:239"}, "properties": {"repobilityId": "5a65095c1ff9a288", "scanner": "scanner-primary", "fingerprint": "611b6cb966ca9263", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mining-simulator/mining-enhanced.js"}, "region": {"startLine": 239}}}]}, {"ruleId": "scanner-ce9526818c12c991", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in interactive-demos/mining-simulator/mining-enhanced.js:89"}, "properties": {"repobilityId": "29b7e72daae27849", "scanner": "scanner-primary", "fingerprint": "ce9526818c12c991", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mining-simulator/mining-enhanced.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-9c89cbca73edaefa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-vs-banking/index.html:768"}, "properties": {"repobilityId": "9b1564884798295f", "scanner": "scanner-primary", "fingerprint": "9c89cbca73edaefa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-vs-banking/index.html"}, "region": {"startLine": 768}}}]}, {"ruleId": "scanner-067db674d74a7f30", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/savings-disappear-scenario/index.html:913"}, "properties": {"repobilityId": "c7badd3a01e29e21", "scanner": "scanner-primary", "fingerprint": "067db674d74a7f30", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/savings-disappear-scenario/index.html"}, "region": {"startLine": 913}}}]}, {"ruleId": "scanner-f17f0f17e688ec57", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/security-dojo-enhanced/index.html:1728"}, "properties": {"repobilityId": "f652a35f77bbe720", "scanner": "scanner-primary", "fingerprint": "f17f0f17e688ec57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/security-dojo-enhanced/index.html"}, "region": {"startLine": 1728}}}]}, {"ruleId": "scanner-c8459c64f564c8d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/index.html:593"}, "properties": {"repobilityId": "999667a13782f9d3", "scanner": "scanner-primary", "fingerprint": "c8459c64f564c8d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-key-generator-visual/index.html"}, "region": {"startLine": 593}}}]}, {"ruleId": "scanner-0d1242fd7e3a06bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/enhancements.html:331"}, "properties": {"repobilityId": "74b4620a45b13ede", "scanner": "scanner-primary", "fingerprint": "0d1242fd7e3a06bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-key-generator-visual/enhancements.html"}, "region": {"startLine": 331}}}]}, {"ruleId": "scanner-5968e15884c564bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-key-generator-visual/index-backup.html:673"}, "properties": {"repobilityId": "6788edc68c9c7cb3", "scanner": "scanner-primary", "fingerprint": "5968e15884c564bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-key-generator-visual/index-backup.html"}, "region": {"startLine": 673}}}]}, {"ruleId": "scanner-29365234731ad879", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/fee-market.js:250"}, "properties": {"repobilityId": "aedab43eaadafa44", "scanner": "scanner-primary", "fingerprint": "29365234731ad879", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mempool-visualizer/fee-market.js"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-235132fd13cc034d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/main.js:135"}, "properties": {"repobilityId": "2d40dfea901f7e47", "scanner": "scanner-primary", "fingerprint": "235132fd13cc034d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mempool-visualizer/main.js"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-6d7631ebf904ffdb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mempool-visualizer/mempool-live.js:73"}, "properties": {"repobilityId": "82045bc44cf4f134", "scanner": "scanner-primary", "fingerprint": "6d7631ebf904ffdb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mempool-visualizer/mempool-live.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-e7c990f29d90ef88", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/ledger-keeper-dilemma/index.html:710"}, "properties": {"repobilityId": "0d004abc01c2c326", "scanner": "scanner-primary", "fingerprint": "e7c990f29d90ef88", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/ledger-keeper-dilemma/index.html"}, "region": {"startLine": 710}}}]}, {"ruleId": "scanner-57a801dd7bb364fe", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-price-timeline/index.html:1142"}, "properties": {"repobilityId": "3e091b4cbafbe656", "scanner": "scanner-primary", "fingerprint": "57a801dd7bb364fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-price-timeline/index.html"}, "region": {"startLine": 1142}}}]}, {"ruleId": "scanner-bf891eee678916ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-security-workshop/index.html:1935"}, "properties": {"repobilityId": "ffe27d389ed25de7", "scanner": "scanner-primary", "fingerprint": "bf891eee678916ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/wallet-security-workshop/index.html"}, "region": {"startLine": 1935}}}]}, {"ruleId": "scanner-9fe5e487f09d6969", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/stock-to-flow/index.html:909"}, "properties": {"repobilityId": "e6c6a6d193d79750", "scanner": "scanner-primary", "fingerprint": "9fe5e487f09d6969", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/stock-to-flow/index.html"}, "region": {"startLine": 909}}}]}, {"ruleId": "scanner-3cc9c418dc2b4957", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/fee-master-tool/index.html:651"}, "properties": {"repobilityId": "e957b0561510ac5a", "scanner": "scanner-primary", "fingerprint": "3cc9c418dc2b4957", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/fee-master-tool/index.html"}, "region": {"startLine": 651}}}]}, {"ruleId": "scanner-82dcaa89205bdfc8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/difficulty-calculator/index.html:603"}, "properties": {"repobilityId": "0fac814962cd204d", "scanner": "scanner-primary", "fingerprint": "82dcaa89205bdfc8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/difficulty-calculator/index.html"}, "region": {"startLine": 603}}}]}, {"ruleId": "scanner-6ee9b01a7d8b3606", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/address-format-explorer/main.js:101"}, "properties": {"repobilityId": "da9d6568423bffe6", "scanner": "scanner-primary", "fingerprint": "6ee9b01a7d8b3606", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/address-format-explorer/main.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-6a78c3dd291dbbd2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/mining-economics-demo/index.html:579"}, "properties": {"repobilityId": "6d067a25012ddd35", "scanner": "scanner-primary", "fingerprint": "6a78c3dd291dbbd2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/mining-economics-demo/index.html"}, "region": {"startLine": 579}}}]}, {"ruleId": "scanner-fab463e371f4a3ba", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/consensus-game/index.html:772"}, "properties": {"repobilityId": "022221b7a87764c1", "scanner": "scanner-primary", "fingerprint": "fab463e371f4a3ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/consensus-game/index.html"}, "region": {"startLine": 772}}}]}, {"ruleId": "scanner-c835f1a483552807", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/money-properties-comparison/index.html:558"}, "properties": {"repobilityId": "8412ea4a8269e204", "scanner": "scanner-primary", "fingerprint": "c835f1a483552807", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/money-properties-comparison/index.html"}, "region": {"startLine": 558}}}]}, {"ruleId": "scanner-be0d994e515afaa7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-supply-schedule/index.html:993"}, "properties": {"repobilityId": "d2e2be9816db803a", "scanner": "scanner-primary", "fingerprint": "be0d994e515afaa7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-supply-schedule/index.html"}, "region": {"startLine": 993}}}]}, {"ruleId": "scanner-011ffb2864f7092c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/account-freeze-locked-out/index.html:947"}, "properties": {"repobilityId": "1207c5971e66f8b8", "scanner": "scanner-primary", "fingerprint": "011ffb2864f7092c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/account-freeze-locked-out/index.html"}, "region": {"startLine": 947}}}]}, {"ruleId": "scanner-96c34c0138b8fe74", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/building-the-chain-demo/index.html:289"}, "properties": {"repobilityId": "5b30325498bc2556", "scanner": "scanner-primary", "fingerprint": "96c34c0138b8fe74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/building-the-chain-demo/index.html"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-d4d451ac4df2de93", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/inflation-impact-calculator/index.html:722"}, "properties": {"repobilityId": "934292cdb1c5469c", "scanner": "scanner-primary", "fingerprint": "d4d451ac4df2de93", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/inflation-impact-calculator/index.html"}, "region": {"startLine": 722}}}]}, {"ruleId": "scanner-af4cf9afb2706385", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/energy-bucket/index.html:942"}, "properties": {"repobilityId": "99ef49db6f32bc17", "scanner": "scanner-primary", "fingerprint": "af4cf9afb2706385", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/energy-bucket/index.html"}, "region": {"startLine": 942}}}]}, {"ruleId": "scanner-c270b2c7116b7aeb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/transaction-builder/transaction-builder-enhanced.js:322"}, "properties": {"repobilityId": "ec3d8886556cc32c", "scanner": "scanner-primary", "fingerprint": "c270b2c7116b7aeb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/transaction-builder/transaction-builder-enhanced.js"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-0849a4fbf118e6b7", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in interactive-demos/transaction-builder/transaction-builder-enhanced.js:76"}, "properties": {"repobilityId": "5ec97a6dcc4dcbe2", "scanner": "scanner-primary", "fingerprint": "0849a4fbf118e6b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/transaction-builder/transaction-builder-enhanced.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-bedf96f7f990835e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/transaction-builder/index.html:464"}, "properties": {"repobilityId": "cd0550d4a6f1d437", "scanner": "scanner-primary", "fingerprint": "bedf96f7f990835e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/transaction-builder/index.html"}, "region": {"startLine": 464}}}]}, {"ruleId": "scanner-a242023b5a22ed52", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/double-spending-demo/index.html:643"}, "properties": {"repobilityId": "fa76fedb0a6419c3", "scanner": "scanner-primary", "fingerprint": "a242023b5a22ed52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/double-spending-demo/index.html"}, "region": {"startLine": 643}}}]}, {"ruleId": "scanner-6fe5f3d2c2064237", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/coinjoin-simulator/main.js:85"}, "properties": {"repobilityId": "00e67e9b386ad219", "scanner": "scanner-primary", "fingerprint": "6fe5f3d2c2064237", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/coinjoin-simulator/main.js"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-8341434d083c9933", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/sat-stacking-calculator/index.html:619"}, "properties": {"repobilityId": "273f09bc145b81a7", "scanner": "scanner-primary", "fingerprint": "8341434d083c9933", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/sat-stacking-calculator/index.html"}, "region": {"startLine": 619}}}]}, {"ruleId": "scanner-9939845678c5acfa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-dca-time-machine/index.html:822"}, "properties": {"repobilityId": "3c957219fe0b7426", "scanner": "scanner-primary", "fingerprint": "9939845678c5acfa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-dca-time-machine/index.html"}, "region": {"startLine": 822}}}]}, {"ruleId": "scanner-088dce522ae3cb05", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-workshop/wallet-workshop.js:312"}, "properties": {"repobilityId": "168609b839d7acb7", "scanner": "scanner-primary", "fingerprint": "088dce522ae3cb05", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/wallet-workshop/wallet-workshop.js"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-b9bf60cfd5aeba9c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/wallet-workshop/index.html:1176"}, "properties": {"repobilityId": "a2331c087df723fa", "scanner": "scanner-primary", "fingerprint": "b9bf60cfd5aeba9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/wallet-workshop/index.html"}, "region": {"startLine": 1176}}}]}, {"ruleId": "scanner-fbe8f4f2d9b8d72b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/computational-puzzles-demo/index.html:455"}, "properties": {"repobilityId": "f3eb711e3f15e566", "scanner": "scanner-primary", "fingerprint": "fbe8f4f2d9b8d72b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/computational-puzzles-demo/index.html"}, "region": {"startLine": 455}}}]}, {"ruleId": "scanner-90f5c86b6276c2eb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/multisig-setup-wizard/main.js:89"}, "properties": {"repobilityId": "8ad89681610b2ff0", "scanner": "scanner-primary", "fingerprint": "90f5c86b6276c2eb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/multisig-setup-wizard/main.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-917e4e98727265f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/multisig-setup-wizard/distribution-planner.js:23"}, "properties": {"repobilityId": "e150d3e3c26100b8", "scanner": "scanner-primary", "fingerprint": "917e4e98727265f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/multisig-setup-wizard/distribution-planner.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-0349da945ffa690a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/lightning-network-demo/index.html:988"}, "properties": {"repobilityId": "89170cf6f8b8bef8", "scanner": "scanner-primary", "fingerprint": "0349da945ffa690a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/lightning-network-demo/index.html"}, "region": {"startLine": 988}}}]}, {"ruleId": "scanner-75e0a30ea3393403", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/node-setup-sandbox/index.html:1661"}, "properties": {"repobilityId": "aa785850ebfd007b", "scanner": "scanner-primary", "fingerprint": "75e0a30ea3393403", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/node-setup-sandbox/index.html"}, "region": {"startLine": 1661}}}]}, {"ruleId": "scanner-498bf9a24b0524e2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/onramp-chooser/onramp-logic.js:32"}, "properties": {"repobilityId": "7811f205b5b4ead2", "scanner": "scanner-primary", "fingerprint": "498bf9a24b0524e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/onramp-chooser/onramp-logic.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-7508b1e38ec567b7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/network-growth-demo/index.html:845"}, "properties": {"repobilityId": "7be53071ae1d0af6", "scanner": "scanner-primary", "fingerprint": "7508b1e38ec567b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/network-growth-demo/index.html"}, "region": {"startLine": 845}}}]}, {"ruleId": "scanner-fb7f74e0eecf6fac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-layers-map/index.html:1251"}, "properties": {"repobilityId": "0ae14ab4dec18bc4", "scanner": "scanner-primary", "fingerprint": "fb7f74e0eecf6fac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-layers-map/index.html"}, "region": {"startLine": 1251}}}]}, {"ruleId": "scanner-0585c00d4588bd58", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/time-chain-explorer/index.html:517"}, "properties": {"repobilityId": "ade22c356a22ca41", "scanner": "scanner-primary", "fingerprint": "0585c00d4588bd58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/time-chain-explorer/index.html"}, "region": {"startLine": 517}}}]}, {"ruleId": "scanner-d25ad87fee3f4797", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-unit-converter/index.html:878"}, "properties": {"repobilityId": "9d70d1e447a09963", "scanner": "scanner-primary", "fingerprint": "d25ad87fee3f4797", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-unit-converter/index.html"}, "region": {"startLine": 878}}}]}, {"ruleId": "scanner-0b409ffdd68bced6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/sovereign-vault/js/app.js:513"}, "properties": {"repobilityId": "5269342c3a0119ba", "scanner": "scanner-primary", "fingerprint": "0b409ffdd68bced6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/sovereign-vault/js/app.js"}, "region": {"startLine": 513}}}]}, {"ruleId": "scanner-a703a6f26882cfe4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/debt-crisis/index.html:771"}, "properties": {"repobilityId": "01ecb419d552c228", "scanner": "scanner-primary", "fingerprint": "a703a6f26882cfe4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/debt-crisis/index.html"}, "region": {"startLine": 771}}}]}, {"ruleId": "scanner-045d03d6dfc15c9a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/time-preference-explorer/index.html:1333"}, "properties": {"repobilityId": "c1bd6c978bbf871e", "scanner": "scanner-primary", "fingerprint": "045d03d6dfc15c9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/time-preference-explorer/index.html"}, "region": {"startLine": 1333}}}]}, {"ruleId": "scanner-7189d4290d4f14cb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-sovereign-game/index.html:1470"}, "properties": {"repobilityId": "e47e190721a0a07b", "scanner": "scanner-primary", "fingerprint": "7189d4290d4f14cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-sovereign-game/index.html"}, "region": {"startLine": 1470}}}]}, {"ruleId": "scanner-610c3799c68e7d32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/testnet-practice-guide/index.html:1044"}, "properties": {"repobilityId": "f640a19f02c4b101", "scanner": "scanner-primary", "fingerprint": "610c3799c68e7d32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/testnet-practice-guide/index.html"}, "region": {"startLine": 1044}}}]}, {"ruleId": "scanner-867be8fd231d7ff8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/network-consensus-demo/index.html:447"}, "properties": {"repobilityId": "6e298ff24d702231", "scanner": "scanner-primary", "fingerprint": "867be8fd231d7ff8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/network-consensus-demo/index.html"}, "region": {"startLine": 447}}}]}, {"ruleId": "scanner-b5399349f3be56ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/emergency-fifty-scenario/index.html:922"}, "properties": {"repobilityId": "7f287c1098f8e659", "scanner": "scanner-primary", "fingerprint": "b5399349f3be56ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/emergency-fifty-scenario/index.html"}, "region": {"startLine": 922}}}]}, {"ruleId": "scanner-32e435adcacf3314", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/utxo-visualizer-enhanced/index.html:1343"}, "properties": {"repobilityId": "e596287fb75eb247", "scanner": "scanner-primary", "fingerprint": "32e435adcacf3314", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/utxo-visualizer-enhanced/index.html"}, "region": {"startLine": 1343}}}]}, {"ruleId": "scanner-3af1f23b2ccaf5f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/digital-signatures-demo/index.html:892"}, "properties": {"repobilityId": "bdf51479aa893d12", "scanner": "scanner-primary", "fingerprint": "3af1f23b2ccaf5f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/digital-signatures-demo/index.html"}, "region": {"startLine": 892}}}]}, {"ruleId": "scanner-89de1b1c4f87dcbb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/kyc-best-practices/index.html:454"}, "properties": {"repobilityId": "8e91ac93840b855f", "scanner": "scanner-primary", "fingerprint": "89de1b1c4f87dcbb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/kyc-best-practices/index.html"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-23394dc0caf30be6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in interactive-demos/bitcoin-genesis-timeline/index.html:1023"}, "properties": {"repobilityId": "a702da88ee5dbdf2", "scanner": "scanner-primary", "fingerprint": "23394dc0caf30be6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "interactive-demos/bitcoin-genesis-timeline/index.html"}, "region": {"startLine": 1023}}}]}, {"ruleId": "scanner-d46e30dc22a317f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin/index.html:797"}, "properties": {"repobilityId": "d75ddf931ed139f4", "scanner": "scanner-primary", "fingerprint": "d46e30dc22a317f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin/index.html"}, "region": {"startLine": 797}}}]}, {"ruleId": "scanner-85655c37c6f22cfe", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in admin/index.html:706"}, "properties": {"repobilityId": "eab292f5cfbe8289", "scanner": "scanner-primary", "fingerprint": "85655c37c6f22cfe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin/index.html"}, "region": {"startLine": 706}}}]}, {"ruleId": "scanner-c5b76fdfd2020e36", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin/content-generator.html:396"}, "properties": {"repobilityId": "a28d141a6a64b898", "scanner": "scanner-primary", "fingerprint": "c5b76fdfd2020e36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin/content-generator.html"}, "region": {"startLine": 396}}}]}, {"ruleId": "scanner-0c32d51b27a6109b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin/analytics.html:288"}, "properties": {"repobilityId": "9395b1919572dfb5", "scanner": "scanner-primary", "fingerprint": "0c32d51b27a6109b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin/analytics.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-445dda5cdb6e45c3", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in admin/analytics.html:230"}, "properties": {"repobilityId": "ca978c3325989289", "scanner": "scanner-primary", "fingerprint": "445dda5cdb6e45c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin/analytics.html"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-7d2b81f95a26b9d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/visual-synthesizer/index.html:1186"}, "properties": {"repobilityId": "59e4fb52cef24cfd", "scanner": "scanner-primary", "fingerprint": "7d2b81f95a26b9d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ai-agents/visual-synthesizer/index.html"}, "region": {"startLine": 1186}}}]}, {"ruleId": "scanner-f079ff2fef4a5265", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/index.html:594"}, "properties": {"repobilityId": "6ef1c4381c6ab207", "scanner": "scanner-primary", "fingerprint": "f079ff2fef4a5265", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ai-agents/story-navigator/index.html"}, "region": {"startLine": 594}}}]}, {"ruleId": "scanner-f29b17c9d2b89323", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/lessons/inflation-story.html:450"}, "properties": {"repobilityId": "505236e2da39bc49", "scanner": "scanner-primary", "fingerprint": "f29b17c9d2b89323", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ai-agents/story-navigator/lessons/inflation-story.html"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-3ddceae04e6b4ced", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ai-agents/story-navigator/lessons/true-cost-of-money.html:822"}, "properties": {"repobilityId": "c32f8e18efa8d9fe", "scanner": "scanner-primary", "fingerprint": "3ddceae04e6b4ced", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ai-agents/story-navigator/lessons/true-cost-of-money.html"}, "region": {"startLine": 822}}}]}, {"ruleId": "scanner-fdf29af58f7b30e4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/tools/client-script-builder.html:119"}, "properties": {"repobilityId": "0a41c7885c26138b", "scanner": "scanner-primary", "fingerprint": "fdf29af58f7b30e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/tools/client-script-builder.html"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-ed3715d25bd73731", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/tools/seed-phrase-red-flags.html:102"}, "properties": {"repobilityId": "6cf68d5bc5e4a957", "scanner": "scanner-primary", "fingerprint": "ed3715d25bd73731", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/tools/seed-phrase-red-flags.html"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-524168a5373a15fe", "level": "note", "message": {"text": "Insecure pattern 'document_write' in institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html:1797"}, "properties": {"repobilityId": "1cb803dc2c0d5f94", "scanner": "scanner-primary", "fingerprint": "524168a5373a15fe", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html"}, "region": {"startLine": 1797}}}]}, {"ruleId": "scanner-6d372271554018cb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html:1319"}, "properties": {"repobilityId": "2adc2c30e7015b0e", "scanner": "scanner-primary", "fingerprint": "6d372271554018cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/advisor-toolkit.html"}, "region": {"startLine": 1319}}}]}, {"ruleId": "scanner-7ad07b1d2a3b1bea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/resources/custody-decision-tree.html:387"}, "properties": {"repobilityId": "2a8ad1527cd3d6dc", "scanner": "scanner-primary", "fingerprint": "7ad07b1d2a3b1bea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/resources/custody-decision-tree.html"}, "region": {"startLine": 387}}}]}, {"ruleId": "scanner-f3fdc7cc7d749791", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/resources/client-risk-assessment-tool.html:412"}, "properties": {"repobilityId": "172763cdf93cec69", "scanner": "scanner-primary", "fingerprint": "f3fdc7cc7d749791", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/resources/client-risk-assessment-tool.html"}, "region": {"startLine": 412}}}]}, {"ruleId": "scanner-bd448a1ee93e6ec5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-12-building-advisory-practice.html:156"}, "properties": {"repobilityId": "a3ef61d64e9ad13d", "scanner": "scanner-primary", "fingerprint": "bd448a1ee93e6ec5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-12-building-advisory-practice.html"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-8557cc21334cdfea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-01-why-advisors-cannot-ignore-bitcoin.html:919"}, "properties": {"repobilityId": "ffaa4d90e698ce8f", "scanner": "scanner-primary", "fingerprint": "8557cc21334cdfea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-01-why-advisors-cannot-ignore-bitcoin.html"}, "region": {"startLine": 919}}}]}, {"ruleId": "scanner-5e53f5bec335f556", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-10-client-communication-mastery.html:154"}, "properties": {"repobilityId": "7f762e29a2939418", "scanner": "scanner-primary", "fingerprint": "5e53f5bec335f556", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-10-client-communication-mastery.html"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-abc7601f7bef4311", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-08-estate-and-inheritance-planning.html:156"}, "properties": {"repobilityId": "10c77153ba1cb1aa", "scanner": "scanner-primary", "fingerprint": "abc7601f7bef4311", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-08-estate-and-inheritance-planning.html"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-6b30e7355905f996", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-03-bitcoin-as-asset-class.html:154"}, "properties": {"repobilityId": "8ede79813f49fe39", "scanner": "scanner-primary", "fingerprint": "6b30e7355905f996", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-03-bitcoin-as-asset-class.html"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-c72cffcc690cc0fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-07-bitcoin-taxation.html:154"}, "properties": {"repobilityId": "f779a7121b17ecc2", "scanner": "scanner-primary", "fingerprint": "c72cffcc690cc0fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-07-bitcoin-taxation.html"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-b1c60b1d5b5790cd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-06-custody-and-security.html:156"}, "properties": {"repobilityId": "1d0596aa83a449a2", "scanner": "scanner-primary", "fingerprint": "b1c60b1d5b5790cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-06-custody-and-security.html"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-01592c2c59519f30", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-05-bitcoin-investment-vehicles.html:172"}, "properties": {"repobilityId": "4dda83f168f15f83", "scanner": "scanner-primary", "fingerprint": "01592c2c59519f30", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-05-bitcoin-investment-vehicles.html"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-ecd4663176168917", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-04-allocation-frameworks.html:154"}, "properties": {"repobilityId": "b077b9f2abc95c0a", "scanner": "scanner-primary", "fingerprint": "ecd4663176168917", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-04-allocation-frameworks.html"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-b1020acb5a169577", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-09-compliance-and-fiduciary-duty.html:154"}, "properties": {"repobilityId": "236ddab0becb73c9", "scanner": "scanner-primary", "fingerprint": "b1020acb5a169577", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-09-compliance-and-fiduciary-duty.html"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-706188adbb215de2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-11-case-studies-common-scenarios.html:154"}, "properties": {"repobilityId": "ac6da5d27c284bde", "scanner": "scanner-primary", "fingerprint": "706188adbb215de2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-11-case-studies-common-scenarios.html"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-30bb90f4c27d859b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-02-bitcoin-explained-professionals.html:269"}, "properties": {"repobilityId": "03dfcf85455a37b8", "scanner": "scanner-primary", "fingerprint": "30bb90f4c27d859b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/wealth-advisors/bitcoin-advisor-certification/modules/module-02-bitcoin-explained-professionals.html"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-e70f6c81c57f0e11", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in institutional/real-estate-developers/calculator/index.html:606"}, "properties": {"repobilityId": "5a0b57f836aa31e0", "scanner": "scanner-primary", "fingerprint": "e70f6c81c57f0e11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "institutional/real-estate-developers/calculator/index.html"}, "region": {"startLine": 606}}}]}, {"ruleId": "scanner-473fcd80cfbc25be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/index.html:638"}, "properties": {"repobilityId": "fac009e163105d3d", "scanner": "scanner-primary", "fingerprint": "473fcd80cfbc25be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/index.html"}, "region": {"startLine": 638}}}]}, {"ruleId": "scanner-4fa8eff3df96b1e4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in tools/domain-test-suite.js:10"}, "properties": {"repobilityId": "e2ff67b0adac27c2", "scanner": "scanner-primary", "fingerprint": "4fa8eff3df96b1e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/domain-test-suite.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-3a2b35f3222e1a8e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in tools/deploy-automation.js:10"}, "properties": {"repobilityId": "f0ef182394f4c62b", "scanner": "scanner-primary", "fingerprint": "3a2b35f3222e1a8e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/deploy-automation.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-92967f72d81ca6d4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in tools/domain-config.js:10"}, "properties": {"repobilityId": "d52480af93832abd", "scanner": "scanner-primary", "fingerprint": "92967f72d81ca6d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/domain-config.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-e888d8f247fdec79", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/domain-dashboard.html:616"}, "properties": {"repobilityId": "39820fbbd75d25cd", "scanner": "scanner-primary", "fingerprint": "e888d8f247fdec79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/domain-dashboard.html"}, "region": {"startLine": 616}}}]}, {"ruleId": "scanner-f1896e6b3cc157ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in my-learning/index.html:899"}, "properties": {"repobilityId": "56dbc480006dbc46", "scanner": "scanner-primary", "fingerprint": "f1896e6b3cc157ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "my-learning/index.html"}, "region": {"startLine": 899}}}]}, {"ruleId": "scanner-3b34355858c86762", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in start/index.html:437"}, "properties": {"repobilityId": "6813cf3ab436d428", "scanner": "scanner-primary", "fingerprint": "3b34355858c86762", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "start/index.html"}, "region": {"startLine": 437}}}]}, {"ruleId": "scanner-831715450ac2b271", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/program-state.js:465"}, "properties": {"repobilityId": "5b5849c204104013", "scanner": "scanner-primary", "fingerprint": "831715450ac2b271", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/program-state.js"}, "region": {"startLine": 465}}}]}, {"ruleId": "scanner-a31fb26e88f64764", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-3/index.html:717"}, "properties": {"repobilityId": "2b643f2ec066b2ae", "scanner": "scanner-primary", "fingerprint": "a31fb26e88f64764", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-3/index.html"}, "region": {"startLine": 717}}}]}, {"ruleId": "scanner-5d1d384e6fe8001a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-6/index.html:550"}, "properties": {"repobilityId": "a49a305233c95344", "scanner": "scanner-primary", "fingerprint": "5d1d384e6fe8001a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-6/index.html"}, "region": {"startLine": 550}}}]}, {"ruleId": "scanner-fc360e519ea2b3d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-5/index.html:522"}, "properties": {"repobilityId": "8a17cfcac422669a", "scanner": "scanner-primary", "fingerprint": "fc360e519ea2b3d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-5/index.html"}, "region": {"startLine": 522}}}]}, {"ruleId": "scanner-1bdd62969b8fb33f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-8/index.html:660"}, "properties": {"repobilityId": "72395eec30e13099", "scanner": "scanner-primary", "fingerprint": "1bdd62969b8fb33f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-8/index.html"}, "region": {"startLine": 660}}}]}, {"ruleId": "scanner-5d08ce947eb165b2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-7/index.html:569"}, "properties": {"repobilityId": "29beb500cf388da8", "scanner": "scanner-primary", "fingerprint": "5d08ce947eb165b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-7/index.html"}, "region": {"startLine": 569}}}]}, {"ruleId": "scanner-e2219ee2f150a7d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-4/index.html:356"}, "properties": {"repobilityId": "4695353dfa11f85a", "scanner": "scanner-primary", "fingerprint": "e2219ee2f150a7d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-4/index.html"}, "region": {"startLine": 356}}}]}, {"ruleId": "scanner-8958fe4658a25c59", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in programa-colombia/semana-1/index.html:1640"}, "properties": {"repobilityId": "5dfb8ed6f83f209d", "scanner": "scanner-primary", "fingerprint": "8958fe4658a25c59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "programa-colombia/semana-1/index.html"}, "region": {"startLine": 1640}}}]}, {"ruleId": "scanner-b27cfb097195534d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demos/index.html:514"}, "properties": {"repobilityId": "5c5e616bfbf0f5c3", "scanner": "scanner-primary", "fingerprint": "b27cfb097195534d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demos/index.html"}, "region": {"startLine": 514}}}]}, {"ruleId": "scanner-47e1133ceae56dd5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "600092e8d04e27a9", "scanner": "scanner-primary", "fingerprint": "47e1133ceae56dd5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/reusable-bump.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-47e1133ceae56dd5", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "338452b4d0efe95a", "scanner": "scanner-primary", "fingerprint": "47e1133ceae56dd5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/reusable-bump.yml"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-47e1133ceae56dd5", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2a728e482c40f651", "scanner": "scanner-primary", "fingerprint": "47e1133ceae56dd5", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/reusable-bump.yml"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-7f48baa2a35f35d4", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "fe7438e8ac8b7bb3", "scanner": "scanner-primary", "fingerprint": "7f48baa2a35f35d4", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/reusable-bump.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-8c45cbace34fe908", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "19720602a3f6d38f", "scanner": "scanner-primary", "fingerprint": "8c45cbace34fe908", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality.yml"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-8c45cbace34fe908", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ef40a6d07d26d6c3", "scanner": "scanner-primary", "fingerprint": "8c45cbace34fe908", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-8c45cbace34fe908", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cdde4bbe1e7714ba", "scanner": "scanner-primary", "fingerprint": "8c45cbace34fe908", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-8c45cbace34fe908", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "17713bc1d377e9e9", "scanner": "scanner-primary", "fingerprint": "8c45cbace34fe908", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality.yml"}, "region": {"startLine": 262}}}]}, {"ruleId": "scanner-8c45cbace34fe908", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "17713bc1d377e9e9", "scanner": "scanner-primary", "fingerprint": "8c45cbace34fe908", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality.yml"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-934839dd013e8a7b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3e5e4bfad142346a", "scanner": "scanner-primary", "fingerprint": "934839dd013e8a7b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-934839dd013e8a7b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0cdf94e1ab356185", "scanner": "scanner-primary", "fingerprint": "934839dd013e8a7b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-934839dd013e8a7b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3e5e4bfad142346a", "scanner": "scanner-primary", "fingerprint": "934839dd013e8a7b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-934839dd013e8a7b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f409a9fb8e50a905", "scanner": "scanner-primary", "fingerprint": "934839dd013e8a7b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-934839dd013e8a7b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "815699909a933658", "scanner": "scanner-primary", "fingerprint": "934839dd013e8a7b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-fa5d201b791420f6", "level": "error", "message": {"text": "GitHub Action tracks a moving branch"}, "properties": {"repobilityId": "ae2fd916af02eb20", "scanner": "scanner-primary", "fingerprint": "fa5d201b791420f6", "layer": "cicd", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-934839dd013e8a7b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3e5e4bfad142346a", "scanner": "scanner-primary", "fingerprint": "934839dd013e8a7b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/quality-gate.yml"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-983a3f9c15e3fbd9", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "bc9938eebfd7e9e3", "scanner": "scanner-primary", "fingerprint": "983a3f9c15e3fbd9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/dispatch-bump.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-65088d460229f2a8", "level": "note", "message": {"text": "Very large file: educational-modules/cbdc-vs-bitcoin.js (1876 lines)"}, "properties": {"repobilityId": "11725778119f83c2", "scanner": "scanner-primary", "fingerprint": "65088d460229f2a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5165bf96da80add1", "level": "note", "message": {"text": "Very large file: js/glossary-data.js (4626 lines)"}, "properties": {"repobilityId": "3a665a32a1f156be", "scanner": "scanner-primary", "fingerprint": "5165bf96da80add1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c7c251b3fa4151e7", "level": "note", "message": {"text": "Very large file: js/lab-guide.js (1512 lines)"}, "properties": {"repobilityId": "ea41b573cdf0b17c", "scanner": "scanner-primary", "fingerprint": "c7c251b3fa4151e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99c4d76e3bee9ce5", "level": "note", "message": {"text": "Very large file: interactive-demos/wallet-workshop/wallet-workshop.js (2505 lines)"}, "properties": {"repobilityId": "d1caf0750f413e50", "scanner": "scanner-primary", "fingerprint": "99c4d76e3bee9ce5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb87472b27b3948e", "level": "note", "message": {"text": "Very large file: interactive-demos/sovereign-vault/js/app.js (1633 lines)"}, "properties": {"repobilityId": "432db753b7de6383", "scanner": "scanner-primary", "fingerprint": "fb87472b27b3948e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dd7ef25fd1e3a3ad", "level": "note", "message": {"text": "Very large file: interactive-demos/bitcoin-sovereign-game/bitcoin-sovereign-game.js (1323 lines)"}, "properties": {"repobilityId": "c9ca409b83c20771", "scanner": "scanner-primary", "fingerprint": "dd7ef25fd1e3a3ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-348fdbb6af846e54", "level": "note", "message": {"text": "Very large file: ai-agents/intelligent-agents.js (1737 lines)"}, "properties": {"repobilityId": "d5be16c6fdebc132", "scanner": "scanner-primary", "fingerprint": "348fdbb6af846e54", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9eb604e69c5335e8", "level": "note", "message": {"text": "Very large file: ai-agents/ai-agents.js (1984 lines)"}, "properties": {"repobilityId": "367520f31847c299", "scanner": "scanner-primary", "fingerprint": "9eb604e69c5335e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b7057366795bf46d", "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": "8e8e424508170142", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "033af0e55e241ab8", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "8fc45fd9566610ce", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "a152c502e8164f58", "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": "44e29f050d72499f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-a331f45aa673eeeb", "level": "note", "message": {"text": "Legacy-named symbol `module_with_old` in update-subdomain-scripts.py:156"}, "properties": {"repobilityId": "dfa2bb2c63aecfe0", "scanner": "scanner-primary", "fingerprint": "a331f45aa673eeeb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-12311c7d0483a167", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 serve-https.py:85"}, "properties": {"repobilityId": "f68551016eb60079", "scanner": "scanner-primary", "fingerprint": "12311c7d0483a167", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00804173f460cdf4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 service-worker.js:63"}, "properties": {"repobilityId": "ccf951d259f23961", "scanner": "scanner-primary", "fingerprint": "00804173f460cdf4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6ce2dc404975d7e", "level": "none", "message": {"text": "Commented-code block (7 lines) in deep-dives/bitcoin-capital/_drafts/loans-math-worksheet.py:671"}, "properties": {"repobilityId": "323cbb4d608f184f", "scanner": "scanner-primary", "fingerprint": "a6ce2dc404975d7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afdbd98e1f031402", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/email.ts:37"}, "properties": {"repobilityId": "a1a4f9fc44219f75", "scanner": "scanner-primary", "fingerprint": "afdbd98e1f031402", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5eaca38eec4a4fed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/btcpay.ts:77"}, "properties": {"repobilityId": "f2e18f969551ea6a", "scanner": "scanner-primary", "fingerprint": "5eaca38eec4a4fed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-115cec316339175b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/kit-checkout.ts:20"}, "properties": {"repobilityId": "93653e034221e7bf", "scanner": "scanner-primary", "fingerprint": "115cec316339175b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d509b04f88ecb74", "level": "none", "message": {"text": "Commented-code block (8 lines) in api/tutor.ts:23"}, "properties": {"repobilityId": "124200bfbb3a3e23", "scanner": "scanner-primary", "fingerprint": "9d509b04f88ecb74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6d0251488f116f6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/sovereign-checkout.ts:8"}, "properties": {"repobilityId": "da0f607250b4616e", "scanner": "scanner-primary", "fingerprint": "a6d0251488f116f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c7ba1a3ad9b30b8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/create-order.js:54"}, "properties": {"repobilityId": "5f7d839a8b3dc0c7", "scanner": "scanner-primary", "fingerprint": "8c7ba1a3ad9b30b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61f5f23d61088908", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/checkout.ts:18"}, "properties": {"repobilityId": "c37616fe9654138d", "scanner": "scanner-primary", "fingerprint": "61f5f23d61088908", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7b9baf4e0fadcb24", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/database.ts:79"}, "properties": {"repobilityId": "7acfd30eddaae11a", "scanner": "scanner-primary", "fingerprint": "7b9baf4e0fadcb24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-47e9b7b0769d0311", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/apprentice-checkout.ts:22"}, "properties": {"repobilityId": "2a42f10bc0fb8b8c", "scanner": "scanner-primary", "fingerprint": "47e9b7b0769d0311", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6fbfd7d3e6773b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/lightning/create-invoice.js:43"}, "properties": {"repobilityId": "47410e3c4fcbfe17", "scanner": "scanner-primary", "fingerprint": "d6fbfd7d3e6773b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3f9720d8114db8c0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/mcp/generate-site.ts:68"}, "properties": {"repobilityId": "88a04e0122e2beed", "scanner": "scanner-primary", "fingerprint": "3f9720d8114db8c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5c42b37f696e497d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/lib/email.ts:63"}, "properties": {"repobilityId": "23b3cc81c43dffe2", "scanner": "scanner-primary", "fingerprint": "5c42b37f696e497d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-62f3d7770ac1b4a4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/admin/analytics.ts:35"}, "properties": {"repobilityId": "ce291c4d684c8c7b", "scanner": "scanner-primary", "fingerprint": "62f3d7770ac1b4a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac602e4fb03cf5cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mcp-integration/mcp-client.js:86"}, "properties": {"repobilityId": "65b9f4c8fedcdc97", "scanner": "scanner-primary", "fingerprint": "ac602e4fb03cf5cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f95248cbbf47523", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/stripe-checkout.js:99"}, "properties": {"repobilityId": "ffa4a346733cfca4", "scanner": "scanner-primary", "fingerprint": "0f95248cbbf47523", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6506c4446516a2ff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/checkout.js:540"}, "properties": {"repobilityId": "1ae2758bcb959b3f", "scanner": "scanner-primary", "fingerprint": "6506c4446516a2ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d52a41c2cea0b63", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/module-gate-subdomain.js:118"}, "properties": {"repobilityId": "0492e5384eeef71b", "scanner": "scanner-primary", "fingerprint": "4d52a41c2cea0b63", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-44388d578ce3e130", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/module-gate.js:15"}, "properties": {"repobilityId": "5cfc0773a5266d19", "scanner": "scanner-primary", "fingerprint": "44388d578ce3e130", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b68fc06168f112f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/module-gate.js:127"}, "properties": {"repobilityId": "fc86d332bd283f18", "scanner": "scanner-primary", "fingerprint": "0b68fc06168f112f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c56de3d55538a46", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/reflect-widget.js:36"}, "properties": {"repobilityId": "1623d943f650896b", "scanner": "scanner-primary", "fingerprint": "2c56de3d55538a46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5907d51d7ca42388", "level": "note", "message": {"text": "Legacy-named symbol `plan_backup` in js/youth-engine.js:36"}, "properties": {"repobilityId": "341c6e00ccfcf928", "scanner": "scanner-primary", "fingerprint": "5907d51d7ca42388", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be25d1b0086e4ad2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/membership-gate.js:209"}, "properties": {"repobilityId": "b5add8d4c288c09d", "scanner": "scanner-primary", "fingerprint": "be25d1b0086e4ad2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5280df37ee9d834c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/subdomain-access-control.js:134"}, "properties": {"repobilityId": "882e4e4c579eb1bc", "scanner": "scanner-primary", "fingerprint": "5280df37ee9d834c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1d3dc9f64e57dba", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kpi-tracking.js:318"}, "properties": {"repobilityId": "3ac62e2c32631035", "scanner": "scanner-primary", "fingerprint": "c1d3dc9f64e57dba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f22045484653600", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/analytics.js:458"}, "properties": {"repobilityId": "b9d259351834574b", "scanner": "scanner-primary", "fingerprint": "4f22045484653600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-726af50b43a45e7c", "level": "note", "message": {"text": "Legacy-named symbol `includeLegacy` in js/progress-manager.js:654"}, "properties": {"repobilityId": "e5fc76995a57be68", "scanner": "scanner-primary", "fingerprint": "726af50b43a45e7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d9a0e9645a7d0845", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/gemini-service.js:473"}, "properties": {"repobilityId": "52918376dec30b10", "scanner": "scanner-primary", "fingerprint": "d9a0e9645a7d0845", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-30ee760f35a659e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/widgets/api-handler.js:107"}, "properties": {"repobilityId": "3792c26d2aa8520b", "scanner": "scanner-primary", "fingerprint": "30ee760f35a659e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4051bcba7364524d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/tutor-evals.mjs:300"}, "properties": {"repobilityId": "bb4ba65c2fca4f8a", "scanner": "scanner-primary", "fingerprint": "4051bcba7364524d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d5de2894b29080b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/nostr/zap-profile-check.mjs:4"}, "properties": {"repobilityId": "988a396f75703808", "scanner": "scanner-primary", "fingerprint": "9d5de2894b29080b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55bed29c8e23362a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/content-lock.js:54"}, "properties": {"repobilityId": "f202f8525aeb21b6", "scanner": "scanner-primary", "fingerprint": "55bed29c8e23362a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d9ad7f47e5c6d649", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 assets/snippets/kit-checkout.js:28"}, "properties": {"repobilityId": "3d56d9842ea2cf6f", "scanner": "scanner-primary", "fingerprint": "d9ad7f47e5c6d649", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6b6ed73844c3fda", "level": "note", "message": {"text": "Legacy-named symbol `bsa_btc_usd_v1` in assets/snippets/sats-price.js:9"}, "properties": {"repobilityId": "4010566881cbeca0", "scanner": "scanner-primary", "fingerprint": "f6b6ed73844c3fda", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f0d14ccd0c517af", "level": "note", "message": {"text": "Legacy-named symbol `hdLegacy` in interactive-demos/bitcoin-key-generator-visual/bitcoin-crypto.js:462"}, "properties": {"repobilityId": "e3b77812088c1439", "scanner": "scanner-primary", "fingerprint": "0f0d14ccd0c517af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7cecd6b2952ede2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in interactive-demos/bitcoin-key-generator-visual/bitcoin-crypto.js:406"}, "properties": {"repobilityId": "5f8c649c55d560e1", "scanner": "scanner-primary", "fingerprint": "7cecd6b2952ede2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ee664cee1be39b5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 interactive-demos/mempool-visualizer/mempool-live.js:22"}, "properties": {"repobilityId": "e239ab59c31d95a0", "scanner": "scanner-primary", "fingerprint": "8ee664cee1be39b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c93b41dc3f25a247", "level": "note", "message": {"text": "Legacy-named symbol `generateFakeLegacy` in interactive-demos/address-format-explorer/address-generator.js:48"}, "properties": {"repobilityId": "83757b650a5ebe23", "scanner": "scanner-primary", "fingerprint": "c93b41dc3f25a247", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1d12f9a55b9be43a", "level": "note", "message": {"text": "Legacy-named symbol `no_backup` in interactive-demos/sovereign-vault/js/resilience.js:320"}, "properties": {"repobilityId": "e39f8fa6f4d27b17", "scanner": "scanner-primary", "fingerprint": "1d12f9a55b9be43a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1b121f7d6319d7ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in programa-colombia/program-state.js:300"}, "properties": {"repobilityId": "290be3400022eaf2", "scanner": "scanner-primary", "fingerprint": "1b121f7d6319d7ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6adfe3d30ee9355f", "level": "note", "message": {"text": "40 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "a58f987b7fee95b4", "scanner": "scanner-primary", "fingerprint": "6adfe3d30ee9355f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-bec2073665f1fc7c", "level": "error", "message": {"text": "Dangling fetch: POST https://api.zaprite.com/v1/orders (api/create-order.js:54)"}, "properties": {"repobilityId": "98dd22538023f5bb", "scanner": "scanner-primary", "fingerprint": "bec2073665f1fc7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0765e436113bcf3b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.zaprite.com/v1/orders/${orderId} (api/webhooks/zaprite.js:210)"}, "properties": {"repobilityId": "be135dea57a9ee15", "scanner": "scanner-primary", "fingerprint": "0765e436113bcf3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd99020ea84faf59", "level": "error", "message": {"text": "Dangling fetch: POST /api/btcpay-checkout (js/stripe-checkout.js:362)"}, "properties": {"repobilityId": "8259e9e1cd32243e", "scanner": "scanner-primary", "fingerprint": "dd99020ea84faf59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd9b8277c4f895a8", "level": "error", "message": {"text": "Dangling fetch: POST /api/cart/price (js/checkout.js:81)"}, "properties": {"repobilityId": "f0ed675de95093fc", "scanner": "scanner-primary", "fingerprint": "fd9b8277c4f895a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1d275e1599c18311", "level": "error", "message": {"text": "Dangling fetch: POST /api/checkout (js/checkout.js:101)"}, "properties": {"repobilityId": "10b4304df956bc54", "scanner": "scanner-primary", "fingerprint": "1d275e1599c18311", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b0bfc6aae9e66ab", "level": "error", "message": {"text": "Dangling fetch: POST /api/verify-access (js/checkout.js:540)"}, "properties": {"repobilityId": "3e47e2707e209a38", "scanner": "scanner-primary", "fingerprint": "8b0bfc6aae9e66ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98a9507d69f3f5b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/verify-access (js/module-gate-subdomain.js:118)"}, "properties": {"repobilityId": "e1850f102b9d051c", "scanner": "scanner-primary", "fingerprint": "98a9507d69f3f5b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-911f7580e57abb1b", "level": "error", "message": {"text": "Dangling fetch: POST /api/verify-access (js/module-gate.js:127)"}, "properties": {"repobilityId": "ee07c496fca6ef7d", "scanner": "scanner-primary", "fingerprint": "911f7580e57abb1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8059b9f6bdf65c27", "level": "error", "message": {"text": "Dangling fetch: POST /api/tutor (js/reflect-widget.js:1071)"}, "properties": {"repobilityId": "f6d45626e27e271c", "scanner": "scanner-primary", "fingerprint": "8059b9f6bdf65c27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6cf1afd00a5401a3", "level": "error", "message": {"text": "Dangling fetch: POST /api/verify-btcpay-invoice (js/membership-btcpay.js:67)"}, "properties": {"repobilityId": "df1e9c2437392eb1", "scanner": "scanner-primary", "fingerprint": "6cf1afd00a5401a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa6457f02938bb03", "level": "error", "message": {"text": "Dangling fetch: POST /api/membership-btcpay-checkout (js/membership-btcpay.js:105)"}, "properties": {"repobilityId": "503739211342a031", "scanner": "scanner-primary", "fingerprint": "fa6457f02938bb03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9048d8464ffac94a", "level": "error", "message": {"text": "Dangling fetch: POST /api/verify-access (js/membership-gate.js:209)"}, "properties": {"repobilityId": "da9821252b5ae191", "scanner": "scanner-primary", "fingerprint": "9048d8464ffac94a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e062e958e35873e4", "level": "error", "message": {"text": "Dangling fetch: POST /api/verify-access (js/subdomain-access-control.js:134)"}, "properties": {"repobilityId": "de49cb63fe753534", "scanner": "scanner-primary", "fingerprint": "e062e958e35873e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d12e8a569724dd0", "level": "error", "message": {"text": "Dangling fetch: GET /api/verify-payment?order=${orderId}&product=${product} (js/payment-access-control.js:151)"}, "properties": {"repobilityId": "c47f33ba4c4d33c0", "scanner": "scanner-primary", "fingerprint": "5d12e8a569724dd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3347569a5c8b7386", "level": "error", "message": {"text": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd (js/bitcoin-data-simple.js:15)"}, "properties": {"repobilityId": "fd1bd1ca7c0583ac", "scanner": "scanner-primary", "fingerprint": "3347569a5c8b7386", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38512008b5961973", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/blocks/tip/height (js/bitcoin-data-simple.js:30)"}, "properties": {"repobilityId": "f11ca5fa6a80718d", "scanner": "scanner-primary", "fingerprint": "38512008b5961973", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c3f33364baf5e53", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/mempool (js/bitcoin-data-simple.js:44)"}, "properties": {"repobilityId": "413784a68023d126", "scanner": "scanner-primary", "fingerprint": "5c3f33364baf5e53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c6af8ca8663c9574", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (js/bitcoin-data-simple.js:58)"}, "properties": {"repobilityId": "5b44819a12f6dfa3", "scanner": "scanner-primary", "fingerprint": "c6af8ca8663c9574", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c64ebd83cbddf4c8", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/v1/difficulty-adjustment (js/bitcoin-data-simple.js:72)"}, "properties": {"repobilityId": "7d6a45d7422728bd", "scanner": "scanner-primary", "fingerprint": "c64ebd83cbddf4c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f8b0e6adc0b65d8b", "level": "error", "message": {"text": "Dangling fetch: POST /api/entitlements/check (components/content-lock.js:54)"}, "properties": {"repobilityId": "f64e59590dbf338b", "scanner": "scanner-primary", "fingerprint": "f8b0e6adc0b65d8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-15d435c2596667c4", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/magic-link (components/content-lock.js:335)"}, "properties": {"repobilityId": "ed7402ec442d6263", "scanner": "scanner-primary", "fingerprint": "15d435c2596667c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0d1a406886ef3e7", "level": "error", "message": {"text": "Dangling fetch: POST /api/usage/track (components/content-lock.js:364)"}, "properties": {"repobilityId": "7b35265f7e7fd805", "scanner": "scanner-primary", "fingerprint": "c0d1a406886ef3e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-479fdadf12db8548", "level": "error", "message": {"text": "Dangling fetch: POST /api/kit-checkout (assets/snippets/kit-checkout.js:28)"}, "properties": {"repobilityId": "c13f3fc2184e44f9", "scanner": "scanner-primary", "fingerprint": "479fdadf12db8548", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d09efa03a00cdaf9", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/v1/prices (assets/snippets/sats-price.js:39)"}, "properties": {"repobilityId": "320451af60b9e871", "scanner": "scanner-primary", "fingerprint": "d09efa03a00cdaf9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7dffb0db2edffa2f", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (interactive-demos/mempool-visualizer/mempool-live.js:18)"}, "properties": {"repobilityId": "225403915c027794", "scanner": "scanner-primary", "fingerprint": "7dffb0db2edffa2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-89d01d93fb2af172", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/mempool (interactive-demos/mempool-visualizer/mempool-live.js:22)"}, "properties": {"repobilityId": "153d577b768daac8", "scanner": "scanner-primary", "fingerprint": "89d01d93fb2af172", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2311620115fd3049", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (api/email.ts:37)"}, "properties": {"repobilityId": "c8aec25776d0c305", "scanner": "scanner-primary", "fingerprint": "2311620115fd3049", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5cf5e8ad83cbd53", "level": "error", "message": {"text": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (api/email.ts:65)"}, "properties": {"repobilityId": "80faeb09a543e4a6", "scanner": "scanner-primary", "fingerprint": "c5cf5e8ad83cbd53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-964dcc6a1188a4a9", "level": "error", "message": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/kit-checkout.ts:20)"}, "properties": {"repobilityId": "9f7b907828b52b3a", "scanner": "scanner-primary", "fingerprint": "964dcc6a1188a4a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90eaa622390d1e47", "level": "error", "message": {"text": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_24hr_change=true (api/tutor.ts:268)"}, "properties": {"repobilityId": "89f830ad3b496606", "scanner": "scanner-primary", "fingerprint": "90eaa622390d1e47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf2c3f7d8984101d", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/v1/fees/recommended (api/tutor.ts:272)"}, "properties": {"repobilityId": "e36497ee48d4ca47", "scanner": "scanner-primary", "fingerprint": "cf2c3f7d8984101d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4566c20bba9fae9c", "level": "error", "message": {"text": "Dangling fetch: GET https://mempool.space/api/blocks/tip/height (api/tutor.ts:275)"}, "properties": {"repobilityId": "23c98f7f71a88e4e", "scanner": "scanner-primary", "fingerprint": "4566c20bba9fae9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-52fed16d061f6cf1", "level": "error", "message": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/sovereign-checkout.ts:8)"}, "properties": {"repobilityId": "73a446bedd072b26", "scanner": "scanner-primary", "fingerprint": "52fed16d061f6cf1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2152eb13a000edf5", "level": "error", "message": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/checkout.ts:18)"}, "properties": {"repobilityId": "8bbcd8fae5d25cc9", "scanner": "scanner-primary", "fingerprint": "2152eb13a000edf5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b8c8896543d2930", "level": "error", "message": {"text": "Dangling fetch: GET https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd (api/apprentice-checkout.ts:22)"}, "properties": {"repobilityId": "9320a59147bc9fc2", "scanner": "scanner-primary", "fingerprint": "4b8c8896543d2930", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91cb02434ab11f4c", "level": "error", "message": {"text": "Dangling fetch: POST https://api.stripe.com/v1${endpoint} (api/apprentice-checkout.ts:33)"}, "properties": {"repobilityId": "ac4fdb17be191e26", "scanner": "scanner-primary", "fingerprint": "91cb02434ab11f4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-472383522374044a", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (api/lib/email.ts:63)"}, "properties": {"repobilityId": "3f8be016855e0363", "scanner": "scanner-primary", "fingerprint": "472383522374044a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-82afbae4bfffe106", "level": "error", "message": {"text": "Dangling fetch: POST https://api.sendgrid.com/v3/mail/send (api/lib/email.ts:98)"}, "properties": {"repobilityId": "01823e6fff3a315a", "scanner": "scanner-primary", "fingerprint": "82afbae4bfffe106", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-510dd164b1787cc8", "level": "note", "message": {"text": "Unused endpoint: POST /api/mcp/generate-site"}, "properties": {"repobilityId": "bbef43a2fb4a740b", "scanner": "scanner-primary", "fingerprint": "510dd164b1787cc8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0723ef5cab312650", "level": "note", "message": {"text": "Unused endpoint: POST /api/mcp/generate"}, "properties": {"repobilityId": "9f48008f7ffd555f", "scanner": "scanner-primary", "fingerprint": "0723ef5cab312650", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "1329f8582de18ed7", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99a7751cc7341d02", "level": "note", "message": {"text": "Unused endpoint: POST /api/analytics/event"}, "properties": {"repobilityId": "3a9222b9884eb3a5", "scanner": "scanner-primary", "fingerprint": "99a7751cc7341d02", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-df71a21d8d03d3ec", "level": "note", "message": {"text": "Unused endpoint: GET /api/bitcoin/network-status"}, "properties": {"repobilityId": "0944909edbc3a97c", "scanner": "scanner-primary", "fingerprint": "df71a21d8d03d3ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8431cc83146c2878", "level": "note", "message": {"text": "Unused endpoint: GET /api/bitcoin/price"}, "properties": {"repobilityId": "73aee62c02078576", "scanner": "scanner-primary", "fingerprint": "8431cc83146c2878", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5193ddb987bec912", "level": "note", "message": {"text": "Unused endpoint: GET /api/bitcoin/fees"}, "properties": {"repobilityId": "62afaca978c88e9b", "scanner": "scanner-primary", "fingerprint": "5193ddb987bec912", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e89bcb5ae984c5c", "level": "note", "message": {"text": "Unused endpoint: GET /api/intelligence/summary"}, "properties": {"repobilityId": "b77e4a3425bfc863", "scanner": "scanner-primary", "fingerprint": "3e89bcb5ae984c5c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b4ecb0b06ba10b7c", "level": "note", "message": {"text": "Unused endpoint: POST /api/course/generate"}, "properties": {"repobilityId": "c1fd17db8c9689d0", "scanner": "scanner-primary", "fingerprint": "b4ecb0b06ba10b7c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6e7426f892d4e96b", "level": "note", "message": {"text": "Unused endpoint: GET /api/learning/module/:name"}, "properties": {"repobilityId": "76234963249a0771", "scanner": "scanner-primary", "fingerprint": "6e7426f892d4e96b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ec0cd12b6ff06da9", "level": "note", "message": {"text": "Unused endpoint: GET /api/simulations/:type"}, "properties": {"repobilityId": "22d1fb76ed8ffca1", "scanner": "scanner-primary", "fingerprint": "ec0cd12b6ff06da9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-60d1f0751d6ba16a", "level": "note", "message": {"text": "Unused endpoint: GET /api/simulations"}, "properties": {"repobilityId": "a53359ff531a35f5", "scanner": "scanner-primary", "fingerprint": "60d1f0751d6ba16a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-76a222b10264b5b8", "level": "note", "message": {"text": "Unused endpoint: ALL /api/dev/unlock-all"}, "properties": {"repobilityId": "6a323aefb33071cd", "scanner": "scanner-primary", "fingerprint": "76a222b10264b5b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-869f85c77f19109b", "level": "note", "message": {"text": "Unused endpoint: GET /api/tools/validate-address"}, "properties": {"repobilityId": "0456a33e45d17e5e", "scanner": "scanner-primary", "fingerprint": "869f85c77f19109b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed28670a44fe4cb5", "level": "note", "message": {"text": "Unused endpoint: GET /api/tools/transaction"}, "properties": {"repobilityId": "8643aa382712f995", "scanner": "scanner-primary", "fingerprint": "ed28670a44fe4cb5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}