{"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-224df894ee3d952f", "name": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/lib/state/sdd.svelte.ts:748", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/lib/state/sdd.svelte.ts:748"}, "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-9794f6bd24dfd975", "name": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/lib/state/canvas-helpers.ts:130", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/lib/state/canvas-helpers.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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22079f087f479db4", "name": "Insecure pattern 'direct_innerhtml_assignment' in apps/desktop/src/lib/components/canvas/CanvasShape.svelte:454", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/desktop/src/lib/components/canvas/CanvasShape.svelte: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-83c2a23772997a49", "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-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/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-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-a22fb39d7340f043", "name": "Very large file: apps/desktop/src-tauri/sidecars/woom-app/src/main.rs (3494 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/sidecars/woom-app/src/main.rs (3494 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-2d0703397c31ee8c", "name": "Very large file: apps/desktop/src-tauri/sidecars/woom-jira/src/main.rs (1611 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/sidecars/woom-jira/src/main.rs (1611 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-2fc1c3c8bf7c9e97", "name": "Very large file: apps/desktop/src-tauri/sidecars/woom-github/src/main.rs (2031 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/sidecars/woom-github/src/main.rs (2031 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-79b95499c20c971d", "name": "Very large file: apps/desktop/src-tauri/src/claude.rs (1550 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/src/claude.rs (1550 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-062fcefd04f4aaf2", "name": "Very large file: apps/desktop/src-tauri/src/lib.rs (2080 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/src/lib.rs (2080 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-42b9848aa1d5ddfa", "name": "Very large file: apps/desktop/src-tauri/src/git.rs (1393 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/src/git.rs (1393 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-89d196cb9ecbc0a6", "name": "Very large file: apps/desktop/src-tauri/src/dw.rs (1865 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/src/dw.rs (1865 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-219a8e53ba6aa040", "name": "Very large file: apps/desktop/src-tauri/src/github.rs (1984 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/src/github.rs (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-005f37df4e7b8055", "name": "Very large file: apps/desktop/src-tauri/src/sdd.rs (1772 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src-tauri/src/sdd.rs (1772 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-2f2821c31c6e1250", "name": "Very large file: apps/desktop/src/lib/state/sessions.svelte.ts (1778 lines)", "shortDescription": {"text": "Very large file: apps/desktop/src/lib/state/sessions.svelte.ts (1778 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": "9 test file(s) for 182 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-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-d57b3f82d2270c5b", "name": "Node manifest has dependencies but no lockfile: apps/desktop/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/desktop/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 7 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 40 placeholder/mock markers across 19 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79f3db73a9be2a87", "name": "Agent instruction/config may expose a secret: docs/AGENTS.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: docs/AGENTS.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aac738f50b3285bc", "name": "Agent authority lacks a verifier contract: docs/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: docs/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d851570b2f1db898", "name": "Commented-code block (7 lines) in apps/desktop/vite.config.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/vite.config.ts:12"}, "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-c2385bf2aeae0d0f", "name": "Commented-code block (7 lines) in apps/desktop/src/lib/format.ts:58", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/format.ts:58"}, "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-6303821640e7064c", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/usage.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/usage.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b575fd56d48e70c", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/data.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/data.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-ac8000e5b19af1fe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/desktop/src/lib/state/library.svelte.ts:333", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/desktop/src/lib/state/library.svelte.ts:333"}, "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-a9899b8517df1425", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/canvas-types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/canvas-types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec141437cc292112", "name": "Commented-code block (8 lines) in apps/desktop/src/lib/state/canvas.svelte.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/canvas.svelte.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-1483ed465ee22375", "name": "Commented-code block (7 lines) in apps/desktop/src/lib/state/layout.svelte.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/state/layout.svelte.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2bd1ae731374a539", "name": "Legacy-named symbol `is_v2` in apps/desktop/src/lib/state/sdd.svelte.ts:244", "shortDescription": {"text": "Legacy-named symbol `is_v2` in apps/desktop/src/lib/state/sdd.svelte.ts:244"}, "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-98d8b8f0c6ceb7b4", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/state/sdd.svelte.ts:977", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/sdd.svelte.ts:977"}, "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-824e4742005e070c", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/quota.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/quota.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fbbedede4c0f682", "name": "Commented-code block (10 lines) in apps/desktop/src/lib/state/toaster.svelte.ts:47", "shortDescription": {"text": "Commented-code block (10 lines) in apps/desktop/src/lib/state/toaster.svelte.ts:47"}, "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-6d8e71383517d124", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/instanceNames.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/instanceNames.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a53239e7aec617bb", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sessions.svelte.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sessions.svelte.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b74b47851623270a", "name": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_persist_error.svelte.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_persist_error.svelte.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-127d86a829091d5c", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/state/bgTasks.svelte.ts:79", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/bgTasks.svelte.ts:79"}, "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-dc7ace3df0c78bc0", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/drag.svelte.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/drag.svelte.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-a6fbac498830d538", "name": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_serialize.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_serialize.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9bf9341ed50b298", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/railBadges.svelte.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/railBadges.svelte.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6314a3b29ab86199", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/state/scale.svelte.ts:75", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/scale.svelte.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-f7e3be75cb2a2a69", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sdd_prompts.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sdd_prompts.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca95632229da945e", "name": "Commented-code block (7 lines) in apps/desktop/src/lib/state/inbox-jira.ts:52", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/state/inbox-jira.ts:52"}, "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-363914102ba6ef14", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sdd_commands.svelte.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sdd_commands.svelte.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f260df403f52ac8c", "name": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_stream.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_stream.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e43e137ac6e3f063", "name": "Commented-code block (9 lines) in apps/desktop/src/lib/state/sdd_action_log_store.svelte.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/desktop/src/lib/state/sdd_action_log_store.svelte.ts: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-cd45dbf236f19721", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/state/sessions_disk.svelte.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/sessions_disk.svelte.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-f127f19dc1513eb4", "name": "Commented-code block (9 lines) in apps/desktop/src/lib/state/inbox-shared.svelte.ts:549", "shortDescription": {"text": "Commented-code block (9 lines) in apps/desktop/src/lib/state/inbox-shared.svelte.ts:549"}, "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-1d7ed4c093f7ec5a", "name": "Commented-code block (10 lines) in apps/desktop/src/lib/state/terminals.svelte.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in apps/desktop/src/lib/state/terminals.svelte.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-f4a29419159ec180", "name": "Commented-code block (7 lines) in apps/desktop/src/lib/state/modals.svelte.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/state/modals.svelte.ts: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-91e52b627a7c2df4", "name": "Commented-code block (7 lines) in apps/desktop/src/lib/components/editor/diffHighlight.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/components/editor/diffHighlight.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-b02dec383fb802d1", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/components/editor/inlineHunks.ts:60", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/components/editor/inlineHunks.ts:60"}, "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-e2351ec89b93b27c", "name": "Legacy-named symbol `curOld` in apps/desktop/src/lib/components/editor/changeBar.ts:119", "shortDescription": {"text": "Legacy-named symbol `curOld` in apps/desktop/src/lib/components/editor/changeBar.ts:119"}, "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-e061e3a657334d73", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/stream/agentStream.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/stream/agentStream.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-c40b6f6874b6a70d", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/exec/claude.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/exec/claude.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-1c373aaad00a7648", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/exec/actions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/exec/actions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eaf4b794635b0448", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/services/liveCardData.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/services/liveCardData.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-e0225e1d355dcc6c", "name": "Commented-code block (12 lines) in apps/desktop/src/lib/services/agentContext.ts:4", "shortDescription": {"text": "Commented-code block (12 lines) in apps/desktop/src/lib/services/agentContext.ts: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-a9324d92dae36603", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/services/canvasScreenshot.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/services/canvasScreenshot.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-5f338ce8ab8c39f9", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/services/editorNavigation.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/services/editorNavigation.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-d5f43e531c1061da", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/services/agentCompact.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/services/agentCompact.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8844c686f5980718", "name": "Commented-code block (10 lines) in apps/desktop/src/lib/services/sessionCwd.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in apps/desktop/src/lib/services/sessionCwd.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-444f15bc6de60898", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/services/diffActions.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/services/diffActions.ts:40"}, "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-9922896ed1ad1d39", "name": "Commented-code block (9 lines) in apps/desktop/src/lib/services/firstTurnContext.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in apps/desktop/src/lib/services/firstTurnContext.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83fedcb363e6bed6", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/services/sessionCwd.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/services/sessionCwd.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cb57aaeb6737fb4", "name": "Commented-code block (6 lines) in apps/desktop/src/lib/views/apps/agent/chatTraceParse.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/views/apps/agent/chatTraceParse.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9af19be4b3055d23", "name": "Commented-code block (5 lines) in apps/desktop/src/lib/views/apps/canvas/canvasLiveCard.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/views/apps/canvas/canvasLiveCard.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d454a95602c4f36", "name": "Commented-code block (7 lines) in apps/desktop/src/routes/handleSlashCommand.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/routes/handleSlashCommand.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e05e3d8a0f3ecb0e", "name": "Commented-code block (10 lines) in apps/desktop/src/routes/agentDrop.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in apps/desktop/src/routes/agentDrop.ts: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-61cbfb30487316da", "name": "Commented-code block (7 lines) in apps/desktop/src/routes/sendClaudeMessage.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/desktop/src/routes/sendClaudeMessage.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9d00cc5aca1f7c3", "name": "Commented-code block (6 lines) in apps/desktop/src/routes/mcpInputParse.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/mcpInputParse.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c85fec44c4f5edc", "name": "Commented-code block (6 lines) in apps/desktop/src/routes/page_helpers.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/page_helpers.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7639af7649c9092f", "name": "Commented-code block (5 lines) in apps/desktop/src/routes/worktreeActions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/routes/worktreeActions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb41a756c20e7722", "name": "Commented-code block (6 lines) in apps/desktop/src/routes/keyboardShortcuts.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/keyboardShortcuts.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56bff8fca74ad465", "name": "Commented-code block (5 lines) in apps/desktop/src/routes/appNavigationCanvas.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/routes/appNavigationCanvas.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4af0fe9ad429b077", "name": "Commented-code block (6 lines) in apps/desktop/src/routes/agentTurn.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/agentTurn.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-614de30ac11b199b", "name": "Commented-code block (5 lines) in apps/desktop/src/routes/modalActions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/desktop/src/routes/modalActions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2a8973a96287f0f", "name": "Commented-code block (6 lines) in scripts/make-manifest.mjs:25", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/make-manifest.mjs: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}}]}}, "automationDetails": {"id": "repobility/22518"}, "properties": {"repository": "walpakhart/Woom", "repoUrl": "https://github.com/walpakhart/Woom", "branch": "main"}, "results": [{"ruleId": "scanner-224df894ee3d952f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/lib/state/sdd.svelte.ts:748"}, "properties": {"repobilityId": "3c3d3d9e658b3042", "scanner": "scanner-primary", "fingerprint": "224df894ee3d952f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9794f6bd24dfd975", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/desktop/src/lib/state/canvas-helpers.ts:130"}, "properties": {"repobilityId": "83bff837e6935f9a", "scanner": "scanner-primary", "fingerprint": "9794f6bd24dfd975", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-22079f087f479db4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in apps/desktop/src/lib/components/canvas/CanvasShape.svelte:454"}, "properties": {"repobilityId": "78fcd869c0fa0e78", "scanner": "scanner-primary", "fingerprint": "22079f087f479db4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/src/lib/components/canvas/CanvasShape.svelte"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-83c2a23772997a49", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bf04f6888eaad026", "scanner": "scanner-primary", "fingerprint": "83c2a23772997a49", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-verify.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-83c2a23772997a49", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d955c649012729f1", "scanner": "scanner-primary", "fingerprint": "83c2a23772997a49", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-verify.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-83c2a23772997a49", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0420d0eba5d42263", "scanner": "scanner-primary", "fingerprint": "83c2a23772997a49", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-verify.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "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": 51}}}]}, {"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": 70}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e040b5c136c9f9b8", "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": 101}}}]}, {"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-a22fb39d7340f043", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/sidecars/woom-app/src/main.rs (3494 lines)"}, "properties": {"repobilityId": "e0786ed9ef5a765b", "scanner": "scanner-primary", "fingerprint": "a22fb39d7340f043", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2d0703397c31ee8c", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/sidecars/woom-jira/src/main.rs (1611 lines)"}, "properties": {"repobilityId": "4c1887cf5da27f2f", "scanner": "scanner-primary", "fingerprint": "2d0703397c31ee8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2fc1c3c8bf7c9e97", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/sidecars/woom-github/src/main.rs (2031 lines)"}, "properties": {"repobilityId": "6fbc51eeb1cbf3d9", "scanner": "scanner-primary", "fingerprint": "2fc1c3c8bf7c9e97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-79b95499c20c971d", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/src/claude.rs (1550 lines)"}, "properties": {"repobilityId": "5c6fcbb4ee28c8d4", "scanner": "scanner-primary", "fingerprint": "79b95499c20c971d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-062fcefd04f4aaf2", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/src/lib.rs (2080 lines)"}, "properties": {"repobilityId": "fb0503aec9420815", "scanner": "scanner-primary", "fingerprint": "062fcefd04f4aaf2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-42b9848aa1d5ddfa", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/src/git.rs (1393 lines)"}, "properties": {"repobilityId": "c735e833b884425d", "scanner": "scanner-primary", "fingerprint": "42b9848aa1d5ddfa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89d196cb9ecbc0a6", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/src/dw.rs (1865 lines)"}, "properties": {"repobilityId": "feef1204c7b15f2f", "scanner": "scanner-primary", "fingerprint": "89d196cb9ecbc0a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-219a8e53ba6aa040", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/src/github.rs (1984 lines)"}, "properties": {"repobilityId": "6adde609736b1fc8", "scanner": "scanner-primary", "fingerprint": "219a8e53ba6aa040", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-005f37df4e7b8055", "level": "note", "message": {"text": "Very large file: apps/desktop/src-tauri/src/sdd.rs (1772 lines)"}, "properties": {"repobilityId": "9eb288f5fd032a50", "scanner": "scanner-primary", "fingerprint": "005f37df4e7b8055", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f2821c31c6e1250", "level": "note", "message": {"text": "Very large file: apps/desktop/src/lib/state/sessions.svelte.ts (1778 lines)"}, "properties": {"repobilityId": "fa3d6b6d0364d6cc", "scanner": "scanner-primary", "fingerprint": "2f2821c31c6e1250", "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": "569c1dd0f2284983", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-d57b3f82d2270c5b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/desktop/package.json"}, "properties": {"repobilityId": "a5d1a254ecc349f8", "scanner": "scanner-primary", "fingerprint": "d57b3f82d2270c5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2b983252f8090323", "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": "e1fb36defa9686f6", "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": "9de9d26043f8eb50", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "61505ee7508aa592", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "8339c92c9df35a00", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "1b6a48d0b4cb841b", "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": "3292566d32fc0380", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-79f3db73a9be2a87", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: docs/AGENTS.md"}, "properties": {"repobilityId": "619df8eededf0f32", "scanner": "scanner-primary", "fingerprint": "79f3db73a9be2a87", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/AGENTS.md"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-aac738f50b3285bc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: docs/AGENTS.md"}, "properties": {"repobilityId": "8a926bdd3e3c0577", "scanner": "scanner-primary", "fingerprint": "aac738f50b3285bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d851570b2f1db898", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/vite.config.ts:12"}, "properties": {"repobilityId": "0435bd9d70a7ba29", "scanner": "scanner-primary", "fingerprint": "d851570b2f1db898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2385bf2aeae0d0f", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/format.ts:58"}, "properties": {"repobilityId": "695f110cda5a79d2", "scanner": "scanner-primary", "fingerprint": "c2385bf2aeae0d0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6303821640e7064c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/usage.test.ts:1"}, "properties": {"repobilityId": "df614d720f178738", "scanner": "scanner-primary", "fingerprint": "6303821640e7064c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b575fd56d48e70c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/data.ts:25"}, "properties": {"repobilityId": "5114894daa5ab229", "scanner": "scanner-primary", "fingerprint": "7b575fd56d48e70c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac8000e5b19af1fe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/desktop/src/lib/state/library.svelte.ts:333"}, "properties": {"repobilityId": "eeac4e6e34f42e48", "scanner": "scanner-primary", "fingerprint": "ac8000e5b19af1fe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a9899b8517df1425", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/canvas-types.ts:1"}, "properties": {"repobilityId": "114aa8fe5739ecc7", "scanner": "scanner-primary", "fingerprint": "a9899b8517df1425", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec141437cc292112", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/canvas.svelte.ts:6"}, "properties": {"repobilityId": "3cd153a0dbfc7b50", "scanner": "scanner-primary", "fingerprint": "ec141437cc292112", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1483ed465ee22375", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/state/layout.svelte.ts:1"}, "properties": {"repobilityId": "ac1e30b372586d59", "scanner": "scanner-primary", "fingerprint": "1483ed465ee22375", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bd1ae731374a539", "level": "note", "message": {"text": "Legacy-named symbol `is_v2` in apps/desktop/src/lib/state/sdd.svelte.ts:244"}, "properties": {"repobilityId": "d9fbc226f591040b", "scanner": "scanner-primary", "fingerprint": "2bd1ae731374a539", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-98d8b8f0c6ceb7b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/sdd.svelte.ts:977"}, "properties": {"repobilityId": "950147001aebefbd", "scanner": "scanner-primary", "fingerprint": "98d8b8f0c6ceb7b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-824e4742005e070c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/quota.test.ts:1"}, "properties": {"repobilityId": "9bf4aef2a1c33c5e", "scanner": "scanner-primary", "fingerprint": "824e4742005e070c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fbbedede4c0f682", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/desktop/src/lib/state/toaster.svelte.ts:47"}, "properties": {"repobilityId": "757faa69610ebf30", "scanner": "scanner-primary", "fingerprint": "2fbbedede4c0f682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d8e71383517d124", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/instanceNames.ts:1"}, "properties": {"repobilityId": "4bb4ad99a2e0b24b", "scanner": "scanner-primary", "fingerprint": "6d8e71383517d124", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a53239e7aec617bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sessions.svelte.ts:1"}, "properties": {"repobilityId": "08b70729064608bf", "scanner": "scanner-primary", "fingerprint": "a53239e7aec617bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b74b47851623270a", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_persist_error.svelte.ts:1"}, "properties": {"repobilityId": "a1177019846b1f5f", "scanner": "scanner-primary", "fingerprint": "b74b47851623270a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-127d86a829091d5c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/bgTasks.svelte.ts:79"}, "properties": {"repobilityId": "c2173e4821058682", "scanner": "scanner-primary", "fingerprint": "127d86a829091d5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc7ace3df0c78bc0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/drag.svelte.ts:7"}, "properties": {"repobilityId": "846a12bbcb9e3482", "scanner": "scanner-primary", "fingerprint": "dc7ace3df0c78bc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6fbac498830d538", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_serialize.ts:1"}, "properties": {"repobilityId": "4f53d7d7c1fe0a24", "scanner": "scanner-primary", "fingerprint": "a6fbac498830d538", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9bf9341ed50b298", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/railBadges.svelte.ts:1"}, "properties": {"repobilityId": "90c0b0f72cad0377", "scanner": "scanner-primary", "fingerprint": "d9bf9341ed50b298", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6314a3b29ab86199", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/scale.svelte.ts:75"}, "properties": {"repobilityId": "5dd6012490903431", "scanner": "scanner-primary", "fingerprint": "6314a3b29ab86199", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7e3be75cb2a2a69", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sdd_prompts.ts:1"}, "properties": {"repobilityId": "79885aad4424ff07", "scanner": "scanner-primary", "fingerprint": "f7e3be75cb2a2a69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca95632229da945e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/state/inbox-jira.ts:52"}, "properties": {"repobilityId": "2b59b143e333a7ef", "scanner": "scanner-primary", "fingerprint": "ca95632229da945e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-363914102ba6ef14", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/state/sdd_commands.svelte.ts:1"}, "properties": {"repobilityId": "13699761792b119b", "scanner": "scanner-primary", "fingerprint": "363914102ba6ef14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f260df403f52ac8c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/desktop/src/lib/state/sessions_stream.ts:1"}, "properties": {"repobilityId": "02c25bea09b4e1d0", "scanner": "scanner-primary", "fingerprint": "f260df403f52ac8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e43e137ac6e3f063", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/desktop/src/lib/state/sdd_action_log_store.svelte.ts:4"}, "properties": {"repobilityId": "be755f8dd291377d", "scanner": "scanner-primary", "fingerprint": "e43e137ac6e3f063", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd45dbf236f19721", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/state/sessions_disk.svelte.ts:7"}, "properties": {"repobilityId": "03f96ae440d0e814", "scanner": "scanner-primary", "fingerprint": "cd45dbf236f19721", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f127f19dc1513eb4", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/desktop/src/lib/state/inbox-shared.svelte.ts:549"}, "properties": {"repobilityId": "1a552b3b7913c5c1", "scanner": "scanner-primary", "fingerprint": "f127f19dc1513eb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d7ed4c093f7ec5a", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/desktop/src/lib/state/terminals.svelte.ts:6"}, "properties": {"repobilityId": "55513d8e54dd0e13", "scanner": "scanner-primary", "fingerprint": "1d7ed4c093f7ec5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4a29419159ec180", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/state/modals.svelte.ts:4"}, "properties": {"repobilityId": "94d0ea1e21c173cf", "scanner": "scanner-primary", "fingerprint": "f4a29419159ec180", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91e52b627a7c2df4", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/lib/components/editor/diffHighlight.ts:3"}, "properties": {"repobilityId": "8a8ff6a07b66b761", "scanner": "scanner-primary", "fingerprint": "91e52b627a7c2df4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b02dec383fb802d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/components/editor/inlineHunks.ts:60"}, "properties": {"repobilityId": "956b11aef7714bc4", "scanner": "scanner-primary", "fingerprint": "b02dec383fb802d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2351ec89b93b27c", "level": "note", "message": {"text": "Legacy-named symbol `curOld` in apps/desktop/src/lib/components/editor/changeBar.ts:119"}, "properties": {"repobilityId": "792f8f9c415485b5", "scanner": "scanner-primary", "fingerprint": "e2351ec89b93b27c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e061e3a657334d73", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/stream/agentStream.ts:6"}, "properties": {"repobilityId": "faa10429ebf935fb", "scanner": "scanner-primary", "fingerprint": "e061e3a657334d73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c40b6f6874b6a70d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/exec/claude.ts:83"}, "properties": {"repobilityId": "17bac3119e7386d7", "scanner": "scanner-primary", "fingerprint": "c40b6f6874b6a70d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c373aaad00a7648", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/exec/actions.ts:1"}, "properties": {"repobilityId": "851ea7f447e44a45", "scanner": "scanner-primary", "fingerprint": "1c373aaad00a7648", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaf4b794635b0448", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/services/liveCardData.ts:6"}, "properties": {"repobilityId": "612df0d2c71b90d7", "scanner": "scanner-primary", "fingerprint": "eaf4b794635b0448", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0225e1d355dcc6c", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/desktop/src/lib/services/agentContext.ts:4"}, "properties": {"repobilityId": "d2b423280cf39612", "scanner": "scanner-primary", "fingerprint": "e0225e1d355dcc6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9324d92dae36603", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/services/canvasScreenshot.ts:3"}, "properties": {"repobilityId": "6fd5b8c279febeaf", "scanner": "scanner-primary", "fingerprint": "a9324d92dae36603", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f338ce8ab8c39f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/services/editorNavigation.ts:3"}, "properties": {"repobilityId": "076ac7c8633c3660", "scanner": "scanner-primary", "fingerprint": "5f338ce8ab8c39f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5f43e531c1061da", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/services/agentCompact.ts:1"}, "properties": {"repobilityId": "0f8bf3ab4cf718a7", "scanner": "scanner-primary", "fingerprint": "d5f43e531c1061da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8844c686f5980718", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/desktop/src/lib/services/sessionCwd.ts:1"}, "properties": {"repobilityId": "4430b1257cfddf9d", "scanner": "scanner-primary", "fingerprint": "8844c686f5980718", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-444f15bc6de60898", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/services/diffActions.ts:40"}, "properties": {"repobilityId": "a6d761d476f545b6", "scanner": "scanner-primary", "fingerprint": "444f15bc6de60898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9922896ed1ad1d39", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/desktop/src/lib/services/firstTurnContext.ts:1"}, "properties": {"repobilityId": "8006478aa18dfe13", "scanner": "scanner-primary", "fingerprint": "9922896ed1ad1d39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83fedcb363e6bed6", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/services/sessionCwd.test.ts:1"}, "properties": {"repobilityId": "de1b6b5fd8e94fa4", "scanner": "scanner-primary", "fingerprint": "83fedcb363e6bed6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cb57aaeb6737fb4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/lib/views/apps/agent/chatTraceParse.ts:1"}, "properties": {"repobilityId": "f3e923e51bc87fdb", "scanner": "scanner-primary", "fingerprint": "8cb57aaeb6737fb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9af19be4b3055d23", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/lib/views/apps/canvas/canvasLiveCard.ts:1"}, "properties": {"repobilityId": "2719b7083f0c4077", "scanner": "scanner-primary", "fingerprint": "9af19be4b3055d23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d454a95602c4f36", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/routes/handleSlashCommand.ts:1"}, "properties": {"repobilityId": "af5561ff465edc22", "scanner": "scanner-primary", "fingerprint": "9d454a95602c4f36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e05e3d8a0f3ecb0e", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/desktop/src/routes/agentDrop.ts:4"}, "properties": {"repobilityId": "7d6cad3dac513924", "scanner": "scanner-primary", "fingerprint": "e05e3d8a0f3ecb0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61cbfb30487316da", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/desktop/src/routes/sendClaudeMessage.ts:1"}, "properties": {"repobilityId": "b40f3f2812f81e03", "scanner": "scanner-primary", "fingerprint": "61cbfb30487316da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9d00cc5aca1f7c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/mcpInputParse.ts:1"}, "properties": {"repobilityId": "b7779b64fdec5ef9", "scanner": "scanner-primary", "fingerprint": "f9d00cc5aca1f7c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c85fec44c4f5edc", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/page_helpers.ts:1"}, "properties": {"repobilityId": "dfc150feeccb20f4", "scanner": "scanner-primary", "fingerprint": "3c85fec44c4f5edc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7639af7649c9092f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/routes/worktreeActions.ts:1"}, "properties": {"repobilityId": "661bd261d6d19e75", "scanner": "scanner-primary", "fingerprint": "7639af7649c9092f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb41a756c20e7722", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/keyboardShortcuts.ts:1"}, "properties": {"repobilityId": "427eb00fd6e78080", "scanner": "scanner-primary", "fingerprint": "bb41a756c20e7722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56bff8fca74ad465", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/routes/appNavigationCanvas.ts:1"}, "properties": {"repobilityId": "9eb569eb49b3f4bc", "scanner": "scanner-primary", "fingerprint": "56bff8fca74ad465", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4af0fe9ad429b077", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/desktop/src/routes/agentTurn.ts:1"}, "properties": {"repobilityId": "7809ed5a5fd8dd33", "scanner": "scanner-primary", "fingerprint": "4af0fe9ad429b077", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-614de30ac11b199b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/desktop/src/routes/modalActions.ts:1"}, "properties": {"repobilityId": "78827568206efded", "scanner": "scanner-primary", "fingerprint": "614de30ac11b199b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2a8973a96287f0f", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/make-manifest.mjs:25"}, "properties": {"repobilityId": "f25f8620885d5f86", "scanner": "scanner-primary", "fingerprint": "d2a8973a96287f0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}