{"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-1289036383e9d664", "name": "TODO/FIXME marker in shipping code \u2014 legacy/renderer/api-shim.ts:11", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 legacy/renderer/api-shim.ts:11"}, "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-4b5e391073151bb2", "name": "Stray `console.log` in TS/JS \u2014 legacy/renderer/pages/editor/loader.ts:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 legacy/renderer/pages/editor/loader.ts:173"}, "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-bcb9a58f44890c6b", "name": "Insecure pattern 'node_child_process' in scripts/fetch-ffmpeg.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-ffmpeg.mjs:20"}, "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-7c14ffe3794cb5a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/thumbnail-panel.ts:72", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/thumbnail-panel.ts:72"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98eca99528ce8e4f", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/publish-page.ts:274", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/publish-page.ts:274"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-63dfba2bbb165265", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/history.ts:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/history.ts:97"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c79dd9fc1699c90", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/onboarding.ts:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/onboarding.ts:65"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-543fe46276356f23", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/audio-page.ts:192", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/audio-page.ts:192"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71f7603c187641fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/recording.ts:253", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/recording.ts:253"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99895c33196db3cb", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/home.ts:246", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/home.ts:246"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d5d65cd91d4c06a", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-companion.ts:41", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-companion.ts:41"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-121eba787232ea56", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-transcript.ts:222", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-transcript.ts: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-226ec488beb58ce9", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-page.ts:441", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-page.ts:441"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a75afe5893c34fb", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/calendar-page.ts:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/calendar-page.ts:47"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70bc4d79a3459940", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/review-queue-home.ts:91", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/review-queue-home.ts:91"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ad4f745d58546dd", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/live-page.ts:364", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/live-page.ts:364"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39a299e7cde7e090", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/schedule-page.ts:227", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/schedule-page.ts:227"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1010e523322050fa", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/video-page.ts:117", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/video-page.ts:117"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9adca3a6c69180f4", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/live-overlays.ts:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/live-overlays.ts:60"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec0a6d8d6b2714c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/metadata.ts:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/metadata.ts: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-ba0cdcae00168fb4", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/detection.ts:173", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/detection.ts:173"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f14cdfff1693ed0", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/export.ts:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/export.ts:265"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b013212d40461b53", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/mastering.ts:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/mastering.ts:33"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bdb1c2ac4aabf0e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/playback.ts:326", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/playback.ts:326"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72d4a0c1a739b248", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/mixer.ts:199", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/mixer.ts:199"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4514fe5b0c6010a", "name": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/cuts.ts:170", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/cuts.ts:170"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "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@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-1838a141491ce38c", "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-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2701de5d0bc2ff3f", "name": "Very large file: crates/sundayrec-core/src/capture.rs (1959 lines)", "shortDescription": {"text": "Very large file: crates/sundayrec-core/src/capture.rs (1959 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-94c7281ebc78b67a", "name": "Very large file: crates/sundayrec-core/src/schedule.rs (1306 lines)", "shortDescription": {"text": "Very large file: crates/sundayrec-core/src/schedule.rs (1306 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-88b720e7547a583d", "name": "Very large file: crates/sundayrec-core/src/editor.rs (1987 lines)", "shortDescription": {"text": "Very large file: crates/sundayrec-core/src/editor.rs (1987 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-55b39987dfe60b50", "name": "Very large file: src-tauri/src/recorder/engine.rs (2613 lines)", "shortDescription": {"text": "Very large file: src-tauri/src/recorder/engine.rs (2613 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-473a6e7418479154", "name": "Very large file: src-tauri/src/media/preview.rs (1404 lines)", "shortDescription": {"text": "Very large file: src-tauri/src/media/preview.rs (1404 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-6b1caa026b053698", "name": "Very large file: src-tauri/src/editor/mod.rs (2092 lines)", "shortDescription": {"text": "Very large file: src-tauri/src/editor/mod.rs (2092 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-119449dacc53820b", "name": "Very large file: legacy/renderer/api-shim.ts (1460 lines)", "shortDescription": {"text": "Very large file: legacy/renderer/api-shim.ts (1460 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-bd9c078daf19515d", "name": "Very large file: legacy/renderer/pages/home.ts (1366 lines)", "shortDescription": {"text": "Very large file: legacy/renderer/pages/home.ts (1366 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": "7 test file(s) for 317 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 5 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 64 placeholder/mock markers across 22 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-93c32a5c7d83189c", "name": "Commented-code block (6 lines) in vite.config.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in vite.config.ts:7"}, "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-66efb9c4272a6fea", "name": "Commented-code block (8 lines) in scripts/fetch-ffmpeg.mjs:11", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/fetch-ffmpeg.mjs:11"}, "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-99903eeca889cf5b", "name": "Commented-code block (10 lines) in scripts/fix-bindings-imports.mjs:3", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/fix-bindings-imports.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03e57256c9b72be3", "name": "Commented-code block (5 lines) in legacy/types/index.ts:599", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/types/index.ts:599"}, "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-33a7cc4644f4a9aa", "name": "Commented-code block (6 lines) in legacy/renderer/api-shim.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in legacy/renderer/api-shim.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-751de56138e13b9e", "name": "Commented-code block (6 lines) in legacy/renderer/time-input.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in legacy/renderer/time-input.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-786271f038fd11de", "name": "Commented-code block (5 lines) in legacy/renderer/pages/publish-page.ts:429", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/publish-page.ts:429"}, "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-2a0c1a51c801286b", "name": "Commented-code block (5 lines) in legacy/renderer/pages/audio-page.ts:198", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/audio-page.ts:198"}, "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-362820b1fbaac2fd", "name": "Commented-code block (5 lines) in legacy/renderer/pages/recording.ts:75", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/recording.ts:75"}, "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-4d6e3b0009aabe0d", "name": "Commented-code block (6 lines) in legacy/renderer/pages/home.ts:25", "shortDescription": {"text": "Commented-code block (6 lines) in legacy/renderer/pages/home.ts:25"}, "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-8fb82974754c649d", "name": "Commented-code block (5 lines) in legacy/renderer/pages/editor-transcript.ts:518", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor-transcript.ts:518"}, "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-8924382936548b53", "name": "Commented-code block (5 lines) in legacy/renderer/pages/editor-page.ts:120", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor-page.ts:120"}, "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-e83e23b8c79dc914", "name": "Commented-code block (6 lines) in legacy/renderer/pages/live-page.ts:113", "shortDescription": {"text": "Commented-code block (6 lines) in legacy/renderer/pages/live-page.ts:113"}, "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-90ca6a74f9dd8772", "name": "Commented-code block (5 lines) in legacy/renderer/pages/video-page.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/video-page.ts:33"}, "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-127ca17f1df8e418", "name": "Commented-code block (5 lines) in legacy/renderer/pages/live-overlays.ts:332", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/live-overlays.ts:332"}, "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-ae9f972cc56801e8", "name": "Commented-code block (5 lines) in legacy/renderer/pages/editor/waveform.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/waveform.ts:83"}, "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-2380ef8e9160d4a5", "name": "Commented-code block (6 lines) in legacy/renderer/pages/editor/peaks.ts:27", "shortDescription": {"text": "Commented-code block (6 lines) in legacy/renderer/pages/editor/peaks.ts:27"}, "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-b9a35aad091fa587", "name": "Commented-code block (5 lines) in legacy/renderer/pages/editor/loader.ts:136", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/loader.ts:136"}, "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-a022ad356c9a7f14", "name": "Commented-code block (5 lines) in legacy/renderer/pages/editor/state.ts:24", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/state.ts:24"}, "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-8ce1e96d723bc602", "name": "Commented-code block (5 lines) in legacy/renderer/pages/editor/playback.ts:90", "shortDescription": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/playback.ts:90"}, "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-fe36c8637441b349", "name": "Commented-code block (7 lines) in legacy/renderer/pages/editor/geometry.ts:65", "shortDescription": {"text": "Commented-code block (7 lines) in legacy/renderer/pages/editor/geometry.ts:65"}, "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}}]}}, "automationDetails": {"id": "repobility/18116"}, "properties": {"repository": "richardfossland/sundayrec", "repoUrl": "https://github.com/richardfossland/sundayrec", "branch": "main"}, "results": [{"ruleId": "scanner-1289036383e9d664", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 legacy/renderer/api-shim.ts:11"}, "properties": {"repobilityId": "eee22417da4bd424", "scanner": "scanner-primary", "fingerprint": "1289036383e9d664", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4b5e391073151bb2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 legacy/renderer/pages/editor/loader.ts:173"}, "properties": {"repobilityId": "ba58865c3e340f44", "scanner": "scanner-primary", "fingerprint": "4b5e391073151bb2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcb9a58f44890c6b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-ffmpeg.mjs:20"}, "properties": {"repobilityId": "ba10dde75b0cd570", "scanner": "scanner-primary", "fingerprint": "bcb9a58f44890c6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-ffmpeg.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-7c14ffe3794cb5a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/thumbnail-panel.ts:72"}, "properties": {"repobilityId": "27a951eacee2f3c7", "scanner": "scanner-primary", "fingerprint": "7c14ffe3794cb5a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/thumbnail-panel.ts"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-98eca99528ce8e4f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/publish-page.ts:274"}, "properties": {"repobilityId": "f6110debf85beb61", "scanner": "scanner-primary", "fingerprint": "98eca99528ce8e4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/publish-page.ts"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-63dfba2bbb165265", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/history.ts:97"}, "properties": {"repobilityId": "8ee3319a6e767049", "scanner": "scanner-primary", "fingerprint": "63dfba2bbb165265", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/history.ts"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-0c79dd9fc1699c90", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/onboarding.ts:65"}, "properties": {"repobilityId": "fb86848fc448452f", "scanner": "scanner-primary", "fingerprint": "0c79dd9fc1699c90", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/onboarding.ts"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-543fe46276356f23", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/audio-page.ts:192"}, "properties": {"repobilityId": "cf057fb5010ad0cb", "scanner": "scanner-primary", "fingerprint": "543fe46276356f23", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/audio-page.ts"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-71f7603c187641fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/recording.ts:253"}, "properties": {"repobilityId": "afce229fb641440a", "scanner": "scanner-primary", "fingerprint": "71f7603c187641fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/recording.ts"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-99895c33196db3cb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/home.ts:246"}, "properties": {"repobilityId": "d5707c7e7cc3c25d", "scanner": "scanner-primary", "fingerprint": "99895c33196db3cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/home.ts"}, "region": {"startLine": 246}}}]}, {"ruleId": "scanner-4d5d65cd91d4c06a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-companion.ts:41"}, "properties": {"repobilityId": "f86072e2617a97a9", "scanner": "scanner-primary", "fingerprint": "4d5d65cd91d4c06a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor-companion.ts"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-121eba787232ea56", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-transcript.ts:222"}, "properties": {"repobilityId": "90a49028ad6b2ed5", "scanner": "scanner-primary", "fingerprint": "121eba787232ea56", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor-transcript.ts"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-226ec488beb58ce9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor-page.ts:441"}, "properties": {"repobilityId": "d74ffac0c0aae943", "scanner": "scanner-primary", "fingerprint": "226ec488beb58ce9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor-page.ts"}, "region": {"startLine": 441}}}]}, {"ruleId": "scanner-0a75afe5893c34fb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/calendar-page.ts:47"}, "properties": {"repobilityId": "baecb9e7444da168", "scanner": "scanner-primary", "fingerprint": "0a75afe5893c34fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/calendar-page.ts"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-70bc4d79a3459940", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/review-queue-home.ts:91"}, "properties": {"repobilityId": "17e9b7521e940f16", "scanner": "scanner-primary", "fingerprint": "70bc4d79a3459940", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/review-queue-home.ts"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-5ad4f745d58546dd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/live-page.ts:364"}, "properties": {"repobilityId": "41e09b210128fb67", "scanner": "scanner-primary", "fingerprint": "5ad4f745d58546dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/live-page.ts"}, "region": {"startLine": 364}}}]}, {"ruleId": "scanner-39a299e7cde7e090", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/schedule-page.ts:227"}, "properties": {"repobilityId": "f78d224c0ad961dd", "scanner": "scanner-primary", "fingerprint": "39a299e7cde7e090", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/schedule-page.ts"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-1010e523322050fa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/video-page.ts:117"}, "properties": {"repobilityId": "ac99f736b4d4ab51", "scanner": "scanner-primary", "fingerprint": "1010e523322050fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/video-page.ts"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-9adca3a6c69180f4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/live-overlays.ts:60"}, "properties": {"repobilityId": "5da4b304c954b70f", "scanner": "scanner-primary", "fingerprint": "9adca3a6c69180f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/live-overlays.ts"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-ec0a6d8d6b2714c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/metadata.ts:29"}, "properties": {"repobilityId": "b36fe36ff8df52db", "scanner": "scanner-primary", "fingerprint": "ec0a6d8d6b2714c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/metadata.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-ba0cdcae00168fb4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/detection.ts:173"}, "properties": {"repobilityId": "473a0c317e22df2c", "scanner": "scanner-primary", "fingerprint": "ba0cdcae00168fb4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/detection.ts"}, "region": {"startLine": 173}}}]}, {"ruleId": "scanner-7f14cdfff1693ed0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/export.ts:265"}, "properties": {"repobilityId": "6a33c94bdca2b55e", "scanner": "scanner-primary", "fingerprint": "7f14cdfff1693ed0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/export.ts"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-b013212d40461b53", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/mastering.ts:33"}, "properties": {"repobilityId": "a32334b78fc087e6", "scanner": "scanner-primary", "fingerprint": "b013212d40461b53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/mastering.ts"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-bdb1c2ac4aabf0e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/playback.ts:326"}, "properties": {"repobilityId": "586f94c4dc22b93b", "scanner": "scanner-primary", "fingerprint": "bdb1c2ac4aabf0e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/playback.ts"}, "region": {"startLine": 326}}}]}, {"ruleId": "scanner-72d4a0c1a739b248", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/mixer.ts:199"}, "properties": {"repobilityId": "c618419ec1ced4ac", "scanner": "scanner-primary", "fingerprint": "72d4a0c1a739b248", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/mixer.ts"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-d4514fe5b0c6010a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in legacy/renderer/pages/editor/cuts.ts:170"}, "properties": {"repobilityId": "436c8576f5b34963", "scanner": "scanner-primary", "fingerprint": "d4514fe5b0c6010a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "legacy/renderer/pages/editor/cuts.ts"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eeb76410cc935c30", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e54fac6c290138e", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8ea30dae63815a3c", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a0f3bb36d11e757e", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b8d11574406cfe94", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2701de5d0bc2ff3f", "level": "note", "message": {"text": "Very large file: crates/sundayrec-core/src/capture.rs (1959 lines)"}, "properties": {"repobilityId": "a760543ad5b4e121", "scanner": "scanner-primary", "fingerprint": "2701de5d0bc2ff3f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-94c7281ebc78b67a", "level": "note", "message": {"text": "Very large file: crates/sundayrec-core/src/schedule.rs (1306 lines)"}, "properties": {"repobilityId": "c38d54b0b0ca16c3", "scanner": "scanner-primary", "fingerprint": "94c7281ebc78b67a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-88b720e7547a583d", "level": "note", "message": {"text": "Very large file: crates/sundayrec-core/src/editor.rs (1987 lines)"}, "properties": {"repobilityId": "04a06c60f15f9df6", "scanner": "scanner-primary", "fingerprint": "88b720e7547a583d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-55b39987dfe60b50", "level": "note", "message": {"text": "Very large file: src-tauri/src/recorder/engine.rs (2613 lines)"}, "properties": {"repobilityId": "8afca0ce74bf3a00", "scanner": "scanner-primary", "fingerprint": "55b39987dfe60b50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-473a6e7418479154", "level": "note", "message": {"text": "Very large file: src-tauri/src/media/preview.rs (1404 lines)"}, "properties": {"repobilityId": "8dbd9a1751613463", "scanner": "scanner-primary", "fingerprint": "473a6e7418479154", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6b1caa026b053698", "level": "note", "message": {"text": "Very large file: src-tauri/src/editor/mod.rs (2092 lines)"}, "properties": {"repobilityId": "11e08ca401fa5fff", "scanner": "scanner-primary", "fingerprint": "6b1caa026b053698", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-119449dacc53820b", "level": "note", "message": {"text": "Very large file: legacy/renderer/api-shim.ts (1460 lines)"}, "properties": {"repobilityId": "4fcce9b958693205", "scanner": "scanner-primary", "fingerprint": "119449dacc53820b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bd9c078daf19515d", "level": "note", "message": {"text": "Very large file: legacy/renderer/pages/home.ts (1366 lines)"}, "properties": {"repobilityId": "e97d2cfb78399816", "scanner": "scanner-primary", "fingerprint": "bd9c078daf19515d", "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-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "1f443a49f1e2f57c", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "402bfdbe40212306", "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": "f4608209779889fb", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "54953a5ca932a82a", "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": "d5688de6334e88fe", "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": "efaf3b5d9cb346ce", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-93c32a5c7d83189c", "level": "none", "message": {"text": "Commented-code block (6 lines) in vite.config.ts:7"}, "properties": {"repobilityId": "e6dc47536ac15f58", "scanner": "scanner-primary", "fingerprint": "93c32a5c7d83189c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66efb9c4272a6fea", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/fetch-ffmpeg.mjs:11"}, "properties": {"repobilityId": "1828f13146b1c625", "scanner": "scanner-primary", "fingerprint": "66efb9c4272a6fea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99903eeca889cf5b", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/fix-bindings-imports.mjs:3"}, "properties": {"repobilityId": "67787c0eb09132f2", "scanner": "scanner-primary", "fingerprint": "99903eeca889cf5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03e57256c9b72be3", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/types/index.ts:599"}, "properties": {"repobilityId": "1c7772df51d6968f", "scanner": "scanner-primary", "fingerprint": "03e57256c9b72be3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33a7cc4644f4a9aa", "level": "none", "message": {"text": "Commented-code block (6 lines) in legacy/renderer/api-shim.ts:6"}, "properties": {"repobilityId": "a09a98a5f32c6cd0", "scanner": "scanner-primary", "fingerprint": "33a7cc4644f4a9aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-751de56138e13b9e", "level": "none", "message": {"text": "Commented-code block (6 lines) in legacy/renderer/time-input.ts:3"}, "properties": {"repobilityId": "f4bb46f349b883cc", "scanner": "scanner-primary", "fingerprint": "751de56138e13b9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-786271f038fd11de", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/publish-page.ts:429"}, "properties": {"repobilityId": "a748c9dc80fe2764", "scanner": "scanner-primary", "fingerprint": "786271f038fd11de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a0c1a51c801286b", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/audio-page.ts:198"}, "properties": {"repobilityId": "3e5568564d26d2f2", "scanner": "scanner-primary", "fingerprint": "2a0c1a51c801286b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-362820b1fbaac2fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/recording.ts:75"}, "properties": {"repobilityId": "a61e4901142f298c", "scanner": "scanner-primary", "fingerprint": "362820b1fbaac2fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d6e3b0009aabe0d", "level": "none", "message": {"text": "Commented-code block (6 lines) in legacy/renderer/pages/home.ts:25"}, "properties": {"repobilityId": "f1d0d69418a86268", "scanner": "scanner-primary", "fingerprint": "4d6e3b0009aabe0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fb82974754c649d", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor-transcript.ts:518"}, "properties": {"repobilityId": "fea0d6ec2b952e12", "scanner": "scanner-primary", "fingerprint": "8fb82974754c649d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8924382936548b53", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor-page.ts:120"}, "properties": {"repobilityId": "a376093b295b964e", "scanner": "scanner-primary", "fingerprint": "8924382936548b53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e83e23b8c79dc914", "level": "none", "message": {"text": "Commented-code block (6 lines) in legacy/renderer/pages/live-page.ts:113"}, "properties": {"repobilityId": "4b1c10f00549d631", "scanner": "scanner-primary", "fingerprint": "e83e23b8c79dc914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90ca6a74f9dd8772", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/video-page.ts:33"}, "properties": {"repobilityId": "b348e2fd9880691e", "scanner": "scanner-primary", "fingerprint": "90ca6a74f9dd8772", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-127ca17f1df8e418", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/live-overlays.ts:332"}, "properties": {"repobilityId": "2a2d642d9595af15", "scanner": "scanner-primary", "fingerprint": "127ca17f1df8e418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae9f972cc56801e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/waveform.ts:83"}, "properties": {"repobilityId": "4c5317bdc2e71c4c", "scanner": "scanner-primary", "fingerprint": "ae9f972cc56801e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2380ef8e9160d4a5", "level": "none", "message": {"text": "Commented-code block (6 lines) in legacy/renderer/pages/editor/peaks.ts:27"}, "properties": {"repobilityId": "e693a73129979639", "scanner": "scanner-primary", "fingerprint": "2380ef8e9160d4a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9a35aad091fa587", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/loader.ts:136"}, "properties": {"repobilityId": "d6a77f7ce5618153", "scanner": "scanner-primary", "fingerprint": "b9a35aad091fa587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a022ad356c9a7f14", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/state.ts:24"}, "properties": {"repobilityId": "ae3c543fbad02854", "scanner": "scanner-primary", "fingerprint": "a022ad356c9a7f14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ce1e96d723bc602", "level": "none", "message": {"text": "Commented-code block (5 lines) in legacy/renderer/pages/editor/playback.ts:90"}, "properties": {"repobilityId": "23ff27ae7cbfd115", "scanner": "scanner-primary", "fingerprint": "8ce1e96d723bc602", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe36c8637441b349", "level": "none", "message": {"text": "Commented-code block (7 lines) in legacy/renderer/pages/editor/geometry.ts:65"}, "properties": {"repobilityId": "5ba2dc39071a6b3e", "scanner": "scanner-primary", "fingerprint": "fe36c8637441b349", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}