{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be127a2f3638019b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/account-nav.tsx:292", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/account-nav.tsx:292"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d55fd9919f08900e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/global-search.tsx:395", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/global-search.tsx:395"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a24ca237de20c2c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/pricing-tree.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/pricing-tree.tsx:79"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4032327b1671fc5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/grouped-accordion/accordion-group-row.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/grouped-accordion/accordion-group-row.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d91d245a7757d91", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/grouped-accordion/accordion-leaf-row.tsx:26", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/grouped-accordion/accordion-leaf-row.tsx:26"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89d632e47886c5ce", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/stripe/route.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/stripe/route.ts:15"}, "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-ebdd227cd2153e8e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/partners/[id]/catalog/catalog-tree.tsx:384", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/partners/[id]/catalog/catalog-tree.tsx:384"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d2db573d4c8955c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/provenance/manifests-search-results.tsx:93", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/provenance/manifests-search-results.tsx:93"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6b985e1d1f8304c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/provenance/manifests-sku-row.tsx:19", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/provenance/manifests-sku-row.tsx:19"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e540cda3d9e4c62", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/manifests/library/add-evidence-modal.tsx:531", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/manifests/library/add-evidence-modal.tsx:531"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c8cfc50243e8f15", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/search/page.tsx:176", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/search/page.tsx:176"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9310da4c375e1e8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/compliance/run-exceptions-panel.tsx:179", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/compliance/run-exceptions-panel.tsx:179"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6af7499547031815", "name": "TODO/FIXME marker in shipping code \u2014 src/app/account/billing/billing-panel.tsx:3", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/account/billing/billing-panel.tsx:3"}, "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-b24c090b38b2fe62", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/requests/new-nomination/catalog-step.tsx:223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/requests/new-nomination/catalog-step.tsx:223"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47c5ddf910e31fb8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/requests/new-nomination/vendor-picker-step.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/requests/new-nomination/vendor-picker-step.tsx:270"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c25a7cd3b56421e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/dashboard/_components/activity-feed.tsx:141", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/dashboard/_components/activity-feed.tsx:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb4fb291e9ff1b25", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/audit/[run_id]/_components/run-header.tsx:104", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/audit/[run_id]/_components/run-header.tsx:104"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4bb8dd40d8ad72c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/templates/_components/partner-sku-picker.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/templates/_components/partner-sku-picker.tsx:158"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5caf379ba7f7bcec", "name": "\"active\" state uses light bg in a dark theme \u2014 src/app/account/sonar/_components/step-rail.tsx:38", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/app/account/sonar/_components/step-rail.tsx:38"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dbf2b8ca0a30ca0e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/_components/bilateral-counterparties-skus-fie", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/_components/bilateral-counterparties-skus-fields.tsx:384"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-022fdf45a6bacbc9", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/haiwave-api.ts:1420", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/haiwave-api.ts:1420"}, "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-a8faf5fd622fd529", "name": "Insecure pattern 'node_child_process' in scripts/build-agent-zip.mjs:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build-agent-zip.mjs:1"}, "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-cba15fda88ac976f", "name": "Insecure pattern 'node_child_process' in scripts/__tests__/build-agent-zip.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/__tests__/build-agent-zip.test.ts:3"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3cfe9db9d6799ed", "name": "Very large file: src/lib/haiwave-api.ts (2050 lines)", "shortDescription": {"text": "Very large file: src/lib/haiwave-api.ts (2050 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 122 placeholder/mock markers across 62 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, ci. 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, ci. 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-ff13e30d06ef8e93", "name": "Commented-code block (5 lines) in src/proxy.test.ts:177", "shortDescription": {"text": "Commented-code block (5 lines) in src/proxy.test.ts:177"}, "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-09dfc0bc11c09ce1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/proxy.test.ts:307", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/proxy.test.ts:307"}, "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-33b2d7b2d19d6aeb", "name": "Commented-code block (15 lines) in src/proxy.ts:9", "shortDescription": {"text": "Commented-code block (15 lines) in src/proxy.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef59223471006865", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/proxy.ts:339", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/proxy.ts:339"}, "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-bcd48a6ec15071b7", "name": "Commented-code block (7 lines) in src/components/account-nav.tsx:121", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/account-nav.tsx:121"}, "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-f66f07509ea204cb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/throttle-header-indicator.tsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/throttle-header-indicator.tsx:12"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2e4742ad4b83225", "name": "Commented-code block (5 lines) in src/components/global-search.tsx:54", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/global-search.tsx:54"}, "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-6fc2901c37158c81", "name": "Commented-code block (5 lines) in src/components/__tests__/account-nav.test.tsx:52", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/__tests__/account-nav.test.tsx: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-efaa44dfe23adcf4", "name": "Commented-code block (5 lines) in src/components/__tests__/pill-signal-type.test.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/__tests__/pill-signal-type.test.tsx: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-e3d839dc4e20be11", "name": "Commented-code block (6 lines) in src/components/sonar/observations/detail-chevron.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/sonar/observations/detail-chevron.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bea839a14b14a61", "name": "Commented-code block (5 lines) in src/components/sonar/phantom-demand/__tests__/bom-tree-view.test.tsx:68", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/sonar/phantom-demand/__tests__/bom-tree-view.test.tsx:68"}, "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-b7ef4feddeb96737", "name": "Commented-code block (8 lines) in src/app/api/auth/callback/route.ts:27", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/auth/callback/route.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-4adc964387d71867", "name": "Commented-code block (7 lines) in src/app/api/auth/register/route.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/auth/register/route.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8573d969cc12b88", "name": "Commented-code block (5 lines) in src/app/api/account/audit-runs/route.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/account/audit-runs/route.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-df4f516f1b6c81da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/account/profile/route.ts:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/account/profile/route.ts:51"}, "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-ea05685c76c5c7fc", "name": "Commented-code block (5 lines) in src/app/api/account/sonar/dashboard/cross-modality/route.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/account/sonar/dashboard/cross-modality/route.ts:69"}, "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-be2a38bdb2de3f8b", "name": "Commented-code block (8 lines) in src/app/api/account/sonar/audit/runs/[run_id]/route.ts:44", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/api/account/sonar/audit/runs/[run_id]/route.ts:44"}, "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-bd3a70746ffcd591", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/approval-rules.tsx:481", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/approval-rules.tsx:481"}, "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-480bb517041c239f", "name": "Commented-code block (5 lines) in src/app/account/partners/partners-panel.tsx:60", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/partners/partners-panel.tsx: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-a19f6e3ba36fa1e8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/partners-panel.tsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/partners-panel.tsx:128"}, "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-226a570d3a620eab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/[id]/catalog/catalog-tree.tsx:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/[id]/catalog/catalog-tree.tsx:62"}, "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-d4404594562d6939", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance-keys/provenance-keys-dashboard.tsx:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance-keys/provenance-keys-dashboard.tsx:32"}, "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-8d97bf7b33fbded0", "name": "Commented-code block (8 lines) in src/app/account/provenance-keys/installer/installer-acknowledge-modal.tsx:50", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/account/provenance-keys/installer/installer-acknowledge-modal.tsx:50"}, "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-ba62ad1f935b8c0d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance-keys/installer/installer-acknowledge-modal.tsx:", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance-keys/installer/installer-acknowledge-modal.tsx:58"}, "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-24bbe25b6e9f6569", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance/manifest-detail-drawer.tsx:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance/manifest-detail-drawer.tsx:31"}, "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-fd570c97c4067895", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance/_lib/use-grouped-manifests.ts:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance/_lib/use-grouped-manifests.ts:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e72b761598177e7", "name": "Commented-code block (5 lines) in src/app/account/manifests/__tests__/sharing-policy-panel.test.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/manifests/__tests__/sharing-policy-panel.test.tsx: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-01a0637ca2815983", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/manifests/library/library-tab.tsx:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/manifests/library/library-tab.tsx:10"}, "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-0ddf1e50e336d04d", "name": "Commented-code block (7 lines) in src/app/account/search/page.tsx:34", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/search/page.tsx:34"}, "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-b05b470b8bd01eef", "name": "Commented-code block (6 lines) in src/app/account/admin/registrations/page.tsx:33", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/account/admin/registrations/page.tsx: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-aaee2f2f12b4d668", "name": "Commented-code block (5 lines) in src/app/account/admin/registrations/registrations-filters.tsx:71", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/admin/registrations/registrations-filters.tsx:71"}, "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-6041992f6b042477", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/scores/score-dashboard.tsx:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/scores/score-dashboard.tsx:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d1ad8289086c68e", "name": "Commented-code block (5 lines) in src/app/account/sonar/watchers/page.tsx:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/watchers/page.tsx:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb765d20d33eff01", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/watchers/new/_components/watcher-wizard.tsx:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/watchers/new/_components/watcher-wizard.tsx:124"}, "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-a83025b9861c3837", "name": "Commented-code block (5 lines) in src/app/account/sonar/watchers/[id]/page.tsx:63", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/watchers/[id]/page.tsx:63"}, "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-e948900eaddd29b3", "name": "Commented-code block (5 lines) in src/app/account/sonar/watchers/[id]/tree-view.tsx:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/watchers/[id]/tree-view.tsx:50"}, "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-458e4d2a04d40e57", "name": "Commented-code block (8 lines) in src/app/account/sonar/watchers/[id]/_components/capacity-band-panel.tsx:21", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/account/sonar/watchers/[id]/_components/capacity-band-panel.tsx:21"}, "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-a0ed04563455eadf", "name": "Commented-code block (10 lines) in src/app/account/sonar/watchers/definitions/[template_id]/_components/watcher-definiti", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/account/sonar/watchers/definitions/[template_id]/_components/watcher-definition-detail.tsx:21"}, "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-f8c03ab06ee92a5f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/watchers/definitions/[template_id]/_components/watch", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/watchers/definitions/[template_id]/_components/watcher-run-now-button.tsx:24"}, "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-1bd1fc733c3c13b3", "name": "Commented-code block (5 lines) in src/app/account/sonar/requests/request-list.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/requests/request-list.tsx:44"}, "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-64f53e057d1d1333", "name": "Commented-code block (8 lines) in src/app/account/sonar/requests/request-management-client.tsx:86", "shortDescription": {"text": "Commented-code block (8 lines) in src/app/account/sonar/requests/request-management-client.tsx:86"}, "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-c8874bd42d6a2e80", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/request-management-client.tsx:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/request-management-client.tsx:89"}, "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-0672e223f81caf89", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/new-nomination/page.tsx:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/new-nomination/page.tsx:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a423d768acfc3db", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/new-nomination/confirm-step.tsx:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/new-nomination/confirm-step.tsx:37"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7936565c4e9c8b7b", "name": "Commented-code block (6 lines) in src/app/account/sonar/requests/_components/filter-bar.tsx:49", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/account/sonar/requests/_components/filter-bar.tsx:49"}, "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-1e7e0c672aad3499", "name": "Commented-code block (9 lines) in src/app/account/sonar/dashboard/page.tsx:77", "shortDescription": {"text": "Commented-code block (9 lines) in src/app/account/sonar/dashboard/page.tsx:77"}, "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-20255e53ddfe976f", "name": "Commented-code block (5 lines) in src/app/account/sonar/audit/events/filter-pills.tsx:55", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/events/filter-pills.tsx:55"}, "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-052a13f750ee53b8", "name": "Commented-code block (6 lines) in src/app/account/sonar/audit/events/_lib/severity.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/account/sonar/audit/events/_lib/severity.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-34fc6eba1c51da63", "name": "Commented-code block (7 lines) in src/app/account/sonar/audit/events/_lib/event-kind-pills.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/sonar/audit/events/_lib/event-kind-pills.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-93e030b9c9844817", "name": "Commented-code block (5 lines) in src/app/account/sonar/audit/new/page.tsx:69", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/new/page.tsx:69"}, "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-552c7699e148a375", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/new/__tests__/page.test.tsx:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/new/__tests__/page.test.tsx:11"}, "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-c902dd39d8f64afc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/new/_components/audit-wizard.tsx:211", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/new/_components/audit-wizard.tsx:211"}, "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-3bf215f3320acb61", "name": "Commented-code block (5 lines) in src/app/account/sonar/audit/_lib/domestic.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/_lib/domestic.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1b04d86016a63f5", "name": "Commented-code block (5 lines) in src/app/account/sonar/audit/gaps/filter-pills.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/gaps/filter-pills.tsx: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-f3ead10cd2418a44", "name": "Commented-code block (5 lines) in src/app/account/sonar/audit/gaps/__tests__/working-list-table.test.tsx:43", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/gaps/__tests__/working-list-table.test.tsx:43"}, "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-c30a58e27d1e0a85", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/[run_id]/__tests__/page.test.tsx:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/[run_id]/__tests__/page.test.tsx:6"}, "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-4077358eecb6a747", "name": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/phantom-demand-scope-fields.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/phantom-demand-scope-fields.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd364d7fdf94a030", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/templates/_components/phantom-demand-scope-fields.ts", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/templates/_components/phantom-demand-scope-fields.tsx:67"}, "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-ae51176aee7c3fc6", "name": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/template-wizard.tsx:19", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/template-wizard.tsx:19"}, "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-bcec0fd5223854c1", "name": "Commented-code block (7 lines) in src/app/account/sonar/templates/_components/scope-picker.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/sonar/templates/_components/scope-picker.tsx: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-365e08537a30b743", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/templates/_components/catalog-class-browser.tsx:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/templates/_components/catalog-class-browser.tsx:54"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-507520b905dceb00", "name": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/__tests__/scope-picker.test.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/__tests__/scope-picker.test.tsx: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-77ad84a1d5951e41", "name": "Commented-code block (7 lines) in src/app/account/sonar/posture/layout.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/sonar/posture/layout.tsx: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-642f08ea38571f05", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/page.tsx:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/page.tsx:31"}, "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-7096a6579520cd1d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/_components/preserved-declines-", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/_components/preserved-declines-panel.tsx:16"}, "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-2e3e563ff03eeaeb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/_components/activation-modal.ts", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/_components/activation-modal.tsx:64"}, "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-f4274fa0ed3483ee", "name": "Commented-code block (5 lines) in src/app/account/sonar/posture/changes/page.tsx:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/posture/changes/page.tsx:29"}, "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-4c8951f32c4b4fad", "name": "Commented-code block (6 lines) in src/app/account/sonar/posture/changes/__tests__/changes-feed.test.tsx:144", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/account/sonar/posture/changes/__tests__/changes-feed.test.tsx:144"}, "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-b222faf874de4422", "name": "Commented-code block (7 lines) in src/app/account/sonar/posture/changes/_lib/event-kind-pills.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/sonar/posture/changes/_lib/event-kind-pills.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-e157f5c54dbfb732", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/phantom-demand/runs/[id]/_components/run-detail-shel", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/phantom-demand/runs/[id]/_components/run-detail-shell.tsx:13"}, "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-10bcc7298e109cb2", "name": "Commented-code block (7 lines) in src/app/account/sonar/_lib/describe-change.ts:22", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/sonar/_lib/describe-change.ts:22"}, "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-0bd1bc716faf8e81", "name": "Commented-code block (5 lines) in src/app/account/sonar/_components/definition-editor.tsx:206", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/account/sonar/_components/definition-editor.tsx:206"}, "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-169a99bb660ce9fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/definition-editor.tsx:261", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/definition-editor.tsx:261"}, "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-5167a0f3fef1dd73", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/run-now-button.tsx:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/run-now-button.tsx:10"}, "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-1ea750d8ee9c8d8a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/scope-table.tsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/scope-table.tsx:23"}, "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-12c2858ddca5541e", "name": "Commented-code block (7 lines) in src/app/account/sonar/_components/change-detail-compare.tsx:31", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/account/sonar/_components/change-detail-compare.tsx:31"}, "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-492919e1e757a334", "name": "Commented-code block (5 lines) in src/app/register/page.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/register/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1821d1d068402bf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/keycloak.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/keycloak.ts:36"}, "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-9cc56ff2087845c6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/oidc.ts:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/oidc.ts:67"}, "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-5b49ad9e94347fe7", "name": "Commented-code block (5 lines) in src/lib/haiwave-api.ts:1158", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/haiwave-api.ts:1158"}, "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-8b95b5d1516ff347", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/haiwave-api.ts:179", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/haiwave-api.ts:179"}, "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-2dcb3cfcdbcb1435", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/swr-fetcher.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/swr-fetcher.ts:9"}, "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-c0f63734ee830209", "name": "Commented-code block (9 lines) in e2e/walk.spec.ts:505", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/walk.spec.ts:505"}, "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-15955a9da20f0d8a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/refined-pd.spec.ts:142", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/refined-pd.spec.ts:142"}, "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-ed13bfa9064adf5c", "name": "Commented-code block (7 lines) in e2e/audit-flow.spec.ts:176", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/audit-flow.spec.ts:176"}, "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-70fcae2d13c708b6", "name": "17 env vars used in code but missing from .env.example", "shortDescription": {"text": "17 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AGENT_SOURCE_REPO`, `CI`, `DEV_KEYCLOAK_CLIENT_ID`, `DEV_KEYCLOAK_CLIENT_SECRET`, `DEV_KEYCLOAK_TOKEN`, `HAICORE_BASE_URL`, `HAIWAVE_PROTOCOL_VERSION`, `HAIWEB_BASE_URL` + 9 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19668"}, "properties": {"repository": "simmysam3/haiWeb", "repoUrl": "https://github.com/simmysam3/haiWeb", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-be127a2f3638019b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/account-nav.tsx:292"}, "properties": {"repobilityId": "b1bc1f1355f6fbfb", "scanner": "scanner-primary", "fingerprint": "be127a2f3638019b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d55fd9919f08900e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/global-search.tsx:395"}, "properties": {"repobilityId": "c2152cd56c7081ee", "scanner": "scanner-primary", "fingerprint": "d55fd9919f08900e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6a24ca237de20c2c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/pricing-tree.tsx:79"}, "properties": {"repobilityId": "98cad0cf0d6b953f", "scanner": "scanner-primary", "fingerprint": "6a24ca237de20c2c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4032327b1671fc5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/grouped-accordion/accordion-group-row.tsx:59"}, "properties": {"repobilityId": "53f3ca997b365a0e", "scanner": "scanner-primary", "fingerprint": "a4032327b1671fc5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0d91d245a7757d91", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/grouped-accordion/accordion-leaf-row.tsx:26"}, "properties": {"repobilityId": "4f6d393e366a8aa3", "scanner": "scanner-primary", "fingerprint": "0d91d245a7757d91", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-89d632e47886c5ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/stripe/route.ts:15"}, "properties": {"repobilityId": "d219e3c7fea8c39b", "scanner": "scanner-primary", "fingerprint": "89d632e47886c5ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ebdd227cd2153e8e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/partners/[id]/catalog/catalog-tree.tsx:384"}, "properties": {"repobilityId": "fa67a242e210db33", "scanner": "scanner-primary", "fingerprint": "ebdd227cd2153e8e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4d2db573d4c8955c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/provenance/manifests-search-results.tsx:93"}, "properties": {"repobilityId": "001df91d791d2135", "scanner": "scanner-primary", "fingerprint": "4d2db573d4c8955c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e6b985e1d1f8304c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/provenance/manifests-sku-row.tsx:19"}, "properties": {"repobilityId": "c7d6c66fa26e0cfd", "scanner": "scanner-primary", "fingerprint": "e6b985e1d1f8304c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7e540cda3d9e4c62", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/manifests/library/add-evidence-modal.tsx:531"}, "properties": {"repobilityId": "f0427904f1db1ad1", "scanner": "scanner-primary", "fingerprint": "7e540cda3d9e4c62", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7c8cfc50243e8f15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/search/page.tsx:176"}, "properties": {"repobilityId": "8a9b8f2a3002dfb5", "scanner": "scanner-primary", "fingerprint": "7c8cfc50243e8f15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f9310da4c375e1e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/compliance/run-exceptions-panel.tsx:179"}, "properties": {"repobilityId": "81a2876b8a346842", "scanner": "scanner-primary", "fingerprint": "f9310da4c375e1e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6af7499547031815", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/account/billing/billing-panel.tsx:3"}, "properties": {"repobilityId": "0e5bdb005cc8ef9d", "scanner": "scanner-primary", "fingerprint": "6af7499547031815", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b24c090b38b2fe62", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/requests/new-nomination/catalog-step.tsx:223"}, "properties": {"repobilityId": "abc3d7f77428b6e6", "scanner": "scanner-primary", "fingerprint": "b24c090b38b2fe62", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-47c5ddf910e31fb8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/requests/new-nomination/vendor-picker-step.tsx:270"}, "properties": {"repobilityId": "0720b50a3f296818", "scanner": "scanner-primary", "fingerprint": "47c5ddf910e31fb8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2c25a7cd3b56421e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/dashboard/_components/activity-feed.tsx:141"}, "properties": {"repobilityId": "2b6f0666cd5fbf57", "scanner": "scanner-primary", "fingerprint": "2c25a7cd3b56421e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eb4fb291e9ff1b25", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/audit/[run_id]/_components/run-header.tsx:104"}, "properties": {"repobilityId": "8cd64b24bbf90b0e", "scanner": "scanner-primary", "fingerprint": "eb4fb291e9ff1b25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c4bb8dd40d8ad72c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/templates/_components/partner-sku-picker.tsx:158"}, "properties": {"repobilityId": "50fad48b6188ac1b", "scanner": "scanner-primary", "fingerprint": "c4bb8dd40d8ad72c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5caf379ba7f7bcec", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/app/account/sonar/_components/step-rail.tsx:38"}, "properties": {"repobilityId": "edd783cbbf825ba9", "scanner": "scanner-primary", "fingerprint": "5caf379ba7f7bcec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-dbf2b8ca0a30ca0e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/account/sonar/_components/bilateral-counterparties-skus-fields.tsx:384"}, "properties": {"repobilityId": "ea44234e35b2e31e", "scanner": "scanner-primary", "fingerprint": "dbf2b8ca0a30ca0e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-022fdf45a6bacbc9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/haiwave-api.ts:1420"}, "properties": {"repobilityId": "5af042ebc89c4f85", "scanner": "scanner-primary", "fingerprint": "022fdf45a6bacbc9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a8faf5fd622fd529", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build-agent-zip.mjs:1"}, "properties": {"repobilityId": "630df3a48be95759", "scanner": "scanner-primary", "fingerprint": "a8faf5fd622fd529", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-agent-zip.mjs"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cba15fda88ac976f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/__tests__/build-agent-zip.test.ts:3"}, "properties": {"repobilityId": "62867f91729f9207", "scanner": "scanner-primary", "fingerprint": "cba15fda88ac976f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/__tests__/build-agent-zip.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-d3cfe9db9d6799ed", "level": "note", "message": {"text": "Very large file: src/lib/haiwave-api.ts (2050 lines)"}, "properties": {"repobilityId": "29aeb05b39fc2eba", "scanner": "scanner-primary", "fingerprint": "d3cfe9db9d6799ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "12b9e5d900cf54bc", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "3bcca451bc0e7633", "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": "007405f707d1c402", "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": "ddb4ebd8de15f220", "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": "e10e7609704193b7", "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": "9fd1a2bad2546fc5", "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": "c146665809db8997", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-ff13e30d06ef8e93", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/proxy.test.ts:177"}, "properties": {"repobilityId": "9b5785e962a5b40e", "scanner": "scanner-primary", "fingerprint": "ff13e30d06ef8e93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09dfc0bc11c09ce1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/proxy.test.ts:307"}, "properties": {"repobilityId": "4ddb705dc624b3b0", "scanner": "scanner-primary", "fingerprint": "09dfc0bc11c09ce1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33b2d7b2d19d6aeb", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/proxy.ts:9"}, "properties": {"repobilityId": "4e7bda85e3740b96", "scanner": "scanner-primary", "fingerprint": "33b2d7b2d19d6aeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef59223471006865", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/proxy.ts:339"}, "properties": {"repobilityId": "fd61ac9feb0c749f", "scanner": "scanner-primary", "fingerprint": "ef59223471006865", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bcd48a6ec15071b7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/account-nav.tsx:121"}, "properties": {"repobilityId": "f3b0a59309d2db72", "scanner": "scanner-primary", "fingerprint": "bcd48a6ec15071b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f66f07509ea204cb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/throttle-header-indicator.tsx:12"}, "properties": {"repobilityId": "06f2427282b8b31f", "scanner": "scanner-primary", "fingerprint": "f66f07509ea204cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d2e4742ad4b83225", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/global-search.tsx:54"}, "properties": {"repobilityId": "bddaf4c949267f3f", "scanner": "scanner-primary", "fingerprint": "d2e4742ad4b83225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fc2901c37158c81", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/__tests__/account-nav.test.tsx:52"}, "properties": {"repobilityId": "1e70e5b3d90ffb14", "scanner": "scanner-primary", "fingerprint": "6fc2901c37158c81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efaa44dfe23adcf4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/__tests__/pill-signal-type.test.tsx:6"}, "properties": {"repobilityId": "ce7c914d84c938be", "scanner": "scanner-primary", "fingerprint": "efaa44dfe23adcf4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3d839dc4e20be11", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/sonar/observations/detail-chevron.tsx:1"}, "properties": {"repobilityId": "334c8df57167054e", "scanner": "scanner-primary", "fingerprint": "e3d839dc4e20be11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bea839a14b14a61", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/sonar/phantom-demand/__tests__/bom-tree-view.test.tsx:68"}, "properties": {"repobilityId": "993a667455a295ab", "scanner": "scanner-primary", "fingerprint": "1bea839a14b14a61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7ef4feddeb96737", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/auth/callback/route.ts:27"}, "properties": {"repobilityId": "3c5c762843fea742", "scanner": "scanner-primary", "fingerprint": "b7ef4feddeb96737", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4adc964387d71867", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/auth/register/route.ts:5"}, "properties": {"repobilityId": "058cd176d06d8e43", "scanner": "scanner-primary", "fingerprint": "4adc964387d71867", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8573d969cc12b88", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/account/audit-runs/route.ts:4"}, "properties": {"repobilityId": "065a8f31e4a6df09", "scanner": "scanner-primary", "fingerprint": "e8573d969cc12b88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df4f516f1b6c81da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/account/profile/route.ts:51"}, "properties": {"repobilityId": "eb017f8257707522", "scanner": "scanner-primary", "fingerprint": "df4f516f1b6c81da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea05685c76c5c7fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/account/sonar/dashboard/cross-modality/route.ts:69"}, "properties": {"repobilityId": "a57edd671e4e42e0", "scanner": "scanner-primary", "fingerprint": "ea05685c76c5c7fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be2a38bdb2de3f8b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/api/account/sonar/audit/runs/[run_id]/route.ts:44"}, "properties": {"repobilityId": "a8cc3ee6a6d7ae83", "scanner": "scanner-primary", "fingerprint": "be2a38bdb2de3f8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd3a70746ffcd591", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/approval-rules.tsx:481"}, "properties": {"repobilityId": "af8273477cae9af0", "scanner": "scanner-primary", "fingerprint": "bd3a70746ffcd591", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-480bb517041c239f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/partners/partners-panel.tsx:60"}, "properties": {"repobilityId": "36aefbf1ba5548cb", "scanner": "scanner-primary", "fingerprint": "480bb517041c239f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a19f6e3ba36fa1e8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/partners-panel.tsx:128"}, "properties": {"repobilityId": "1abe5c97ac151510", "scanner": "scanner-primary", "fingerprint": "a19f6e3ba36fa1e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-226a570d3a620eab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/partners/[id]/catalog/catalog-tree.tsx:62"}, "properties": {"repobilityId": "8c3ed246028502e2", "scanner": "scanner-primary", "fingerprint": "226a570d3a620eab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d4404594562d6939", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance-keys/provenance-keys-dashboard.tsx:32"}, "properties": {"repobilityId": "e6b7f7cd698b7b5d", "scanner": "scanner-primary", "fingerprint": "d4404594562d6939", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8d97bf7b33fbded0", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/account/provenance-keys/installer/installer-acknowledge-modal.tsx:50"}, "properties": {"repobilityId": "a6e6a21d38d2d0b2", "scanner": "scanner-primary", "fingerprint": "8d97bf7b33fbded0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba62ad1f935b8c0d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance-keys/installer/installer-acknowledge-modal.tsx:58"}, "properties": {"repobilityId": "70d769ee75cc78df", "scanner": "scanner-primary", "fingerprint": "ba62ad1f935b8c0d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-24bbe25b6e9f6569", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance/manifest-detail-drawer.tsx:31"}, "properties": {"repobilityId": "20057c079bc1bd2c", "scanner": "scanner-primary", "fingerprint": "24bbe25b6e9f6569", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fd570c97c4067895", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/provenance/_lib/use-grouped-manifests.ts:18"}, "properties": {"repobilityId": "ee5328efffefccf0", "scanner": "scanner-primary", "fingerprint": "fd570c97c4067895", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1e72b761598177e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/manifests/__tests__/sharing-policy-panel.test.tsx:11"}, "properties": {"repobilityId": "b6c0dbf98233a159", "scanner": "scanner-primary", "fingerprint": "1e72b761598177e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01a0637ca2815983", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/manifests/library/library-tab.tsx:10"}, "properties": {"repobilityId": "ce4f2ad74723f675", "scanner": "scanner-primary", "fingerprint": "01a0637ca2815983", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ddf1e50e336d04d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/search/page.tsx:34"}, "properties": {"repobilityId": "814bc5658ab935d0", "scanner": "scanner-primary", "fingerprint": "0ddf1e50e336d04d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b05b470b8bd01eef", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/account/admin/registrations/page.tsx:33"}, "properties": {"repobilityId": "78b10255d426fd31", "scanner": "scanner-primary", "fingerprint": "b05b470b8bd01eef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaee2f2f12b4d668", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/admin/registrations/registrations-filters.tsx:71"}, "properties": {"repobilityId": "7610eb63459bf77a", "scanner": "scanner-primary", "fingerprint": "aaee2f2f12b4d668", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6041992f6b042477", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/scores/score-dashboard.tsx:18"}, "properties": {"repobilityId": "a70ecaebaad4c4f8", "scanner": "scanner-primary", "fingerprint": "6041992f6b042477", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d1ad8289086c68e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/watchers/page.tsx:36"}, "properties": {"repobilityId": "6a8c2914e0f9add5", "scanner": "scanner-primary", "fingerprint": "2d1ad8289086c68e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb765d20d33eff01", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/watchers/new/_components/watcher-wizard.tsx:124"}, "properties": {"repobilityId": "a2d14afc259991a5", "scanner": "scanner-primary", "fingerprint": "eb765d20d33eff01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a83025b9861c3837", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/watchers/[id]/page.tsx:63"}, "properties": {"repobilityId": "08a30dc6732a39c2", "scanner": "scanner-primary", "fingerprint": "a83025b9861c3837", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e948900eaddd29b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/watchers/[id]/tree-view.tsx:50"}, "properties": {"repobilityId": "db52923c62b073ef", "scanner": "scanner-primary", "fingerprint": "e948900eaddd29b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-458e4d2a04d40e57", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/account/sonar/watchers/[id]/_components/capacity-band-panel.tsx:21"}, "properties": {"repobilityId": "3056f7e7dde1a205", "scanner": "scanner-primary", "fingerprint": "458e4d2a04d40e57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0ed04563455eadf", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/account/sonar/watchers/definitions/[template_id]/_components/watcher-definition-detail.tsx:21"}, "properties": {"repobilityId": "094948b3312ffcb9", "scanner": "scanner-primary", "fingerprint": "a0ed04563455eadf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8c03ab06ee92a5f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/watchers/definitions/[template_id]/_components/watcher-run-now-button.tsx:24"}, "properties": {"repobilityId": "72b28849990ee824", "scanner": "scanner-primary", "fingerprint": "f8c03ab06ee92a5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1bd1fc733c3c13b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/requests/request-list.tsx:44"}, "properties": {"repobilityId": "be24e49068883659", "scanner": "scanner-primary", "fingerprint": "1bd1fc733c3c13b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64f53e057d1d1333", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/app/account/sonar/requests/request-management-client.tsx:86"}, "properties": {"repobilityId": "75691cb3fded2789", "scanner": "scanner-primary", "fingerprint": "64f53e057d1d1333", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8874bd42d6a2e80", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/request-management-client.tsx:89"}, "properties": {"repobilityId": "a52bbddb6db40cb5", "scanner": "scanner-primary", "fingerprint": "c8874bd42d6a2e80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0672e223f81caf89", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/new-nomination/page.tsx:22"}, "properties": {"repobilityId": "364f736aff0f339c", "scanner": "scanner-primary", "fingerprint": "0672e223f81caf89", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9a423d768acfc3db", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/requests/new-nomination/confirm-step.tsx:37"}, "properties": {"repobilityId": "0a59f9f79ae44255", "scanner": "scanner-primary", "fingerprint": "9a423d768acfc3db", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7936565c4e9c8b7b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/account/sonar/requests/_components/filter-bar.tsx:49"}, "properties": {"repobilityId": "4dd10070b6d43ba9", "scanner": "scanner-primary", "fingerprint": "7936565c4e9c8b7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e7e0c672aad3499", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/app/account/sonar/dashboard/page.tsx:77"}, "properties": {"repobilityId": "a51addab46f37ec3", "scanner": "scanner-primary", "fingerprint": "1e7e0c672aad3499", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20255e53ddfe976f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/events/filter-pills.tsx:55"}, "properties": {"repobilityId": "93d7f859f3551720", "scanner": "scanner-primary", "fingerprint": "20255e53ddfe976f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-052a13f750ee53b8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/account/sonar/audit/events/_lib/severity.ts:1"}, "properties": {"repobilityId": "cba1587aed76f4d5", "scanner": "scanner-primary", "fingerprint": "052a13f750ee53b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34fc6eba1c51da63", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/sonar/audit/events/_lib/event-kind-pills.ts:3"}, "properties": {"repobilityId": "9a93bb7a83ee6074", "scanner": "scanner-primary", "fingerprint": "34fc6eba1c51da63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93e030b9c9844817", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/new/page.tsx:69"}, "properties": {"repobilityId": "770d70b9e293094b", "scanner": "scanner-primary", "fingerprint": "93e030b9c9844817", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-552c7699e148a375", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/new/__tests__/page.test.tsx:11"}, "properties": {"repobilityId": "6fcafefd8036c714", "scanner": "scanner-primary", "fingerprint": "552c7699e148a375", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c902dd39d8f64afc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/new/_components/audit-wizard.tsx:211"}, "properties": {"repobilityId": "f5d1f3c4a77a5757", "scanner": "scanner-primary", "fingerprint": "c902dd39d8f64afc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3bf215f3320acb61", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/_lib/domestic.tsx:1"}, "properties": {"repobilityId": "c2ceeedf126f3266", "scanner": "scanner-primary", "fingerprint": "3bf215f3320acb61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1b04d86016a63f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/gaps/filter-pills.tsx:11"}, "properties": {"repobilityId": "02271fcfa665aa82", "scanner": "scanner-primary", "fingerprint": "b1b04d86016a63f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3ead10cd2418a44", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/audit/gaps/__tests__/working-list-table.test.tsx:43"}, "properties": {"repobilityId": "f1c2a8f3173ec6e2", "scanner": "scanner-primary", "fingerprint": "f3ead10cd2418a44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c30a58e27d1e0a85", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/audit/[run_id]/__tests__/page.test.tsx:6"}, "properties": {"repobilityId": "28a4e0701b6438c5", "scanner": "scanner-primary", "fingerprint": "c30a58e27d1e0a85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4077358eecb6a747", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/phantom-demand-scope-fields.tsx:13"}, "properties": {"repobilityId": "3c1be9f08121cd49", "scanner": "scanner-primary", "fingerprint": "4077358eecb6a747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd364d7fdf94a030", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/templates/_components/phantom-demand-scope-fields.tsx:67"}, "properties": {"repobilityId": "b964c2fdb8cfc6bb", "scanner": "scanner-primary", "fingerprint": "cd364d7fdf94a030", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae51176aee7c3fc6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/template-wizard.tsx:19"}, "properties": {"repobilityId": "25ba60db864bbce3", "scanner": "scanner-primary", "fingerprint": "ae51176aee7c3fc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcec0fd5223854c1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/sonar/templates/_components/scope-picker.tsx:6"}, "properties": {"repobilityId": "e4b0ada6979dc4a5", "scanner": "scanner-primary", "fingerprint": "bcec0fd5223854c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-365e08537a30b743", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/templates/_components/catalog-class-browser.tsx:54"}, "properties": {"repobilityId": "e1620aaa5c4d4434", "scanner": "scanner-primary", "fingerprint": "365e08537a30b743", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-507520b905dceb00", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/templates/_components/__tests__/scope-picker.test.tsx:11"}, "properties": {"repobilityId": "962dfa6da3133aac", "scanner": "scanner-primary", "fingerprint": "507520b905dceb00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77ad84a1d5951e41", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/sonar/posture/layout.tsx:3"}, "properties": {"repobilityId": "d6626e68a3394afb", "scanner": "scanner-primary", "fingerprint": "77ad84a1d5951e41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-642f08ea38571f05", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/page.tsx:31"}, "properties": {"repobilityId": "0aefd6dc349a4b83", "scanner": "scanner-primary", "fingerprint": "642f08ea38571f05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7096a6579520cd1d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/_components/preserved-declines-panel.tsx:16"}, "properties": {"repobilityId": "6bdb6b349d6e0f17", "scanner": "scanner-primary", "fingerprint": "7096a6579520cd1d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2e3e563ff03eeaeb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/posture/trust-bypass/_components/activation-modal.tsx:64"}, "properties": {"repobilityId": "e34e7c5956842c5e", "scanner": "scanner-primary", "fingerprint": "2e3e563ff03eeaeb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f4274fa0ed3483ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/posture/changes/page.tsx:29"}, "properties": {"repobilityId": "17595471b811165e", "scanner": "scanner-primary", "fingerprint": "f4274fa0ed3483ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c8951f32c4b4fad", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/account/sonar/posture/changes/__tests__/changes-feed.test.tsx:144"}, "properties": {"repobilityId": "44c65d566eee6298", "scanner": "scanner-primary", "fingerprint": "4c8951f32c4b4fad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b222faf874de4422", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/sonar/posture/changes/_lib/event-kind-pills.ts:3"}, "properties": {"repobilityId": "077e8c07526258be", "scanner": "scanner-primary", "fingerprint": "b222faf874de4422", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e157f5c54dbfb732", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/phantom-demand/runs/[id]/_components/run-detail-shell.tsx:13"}, "properties": {"repobilityId": "626c96c800ac6757", "scanner": "scanner-primary", "fingerprint": "e157f5c54dbfb732", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-10bcc7298e109cb2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/sonar/_lib/describe-change.ts:22"}, "properties": {"repobilityId": "21f967ffa0a78a7d", "scanner": "scanner-primary", "fingerprint": "10bcc7298e109cb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bd1bc716faf8e81", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/account/sonar/_components/definition-editor.tsx:206"}, "properties": {"repobilityId": "e4f4bea16f13d5a4", "scanner": "scanner-primary", "fingerprint": "0bd1bc716faf8e81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-169a99bb660ce9fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/definition-editor.tsx:261"}, "properties": {"repobilityId": "6fb2b8bcac841c0d", "scanner": "scanner-primary", "fingerprint": "169a99bb660ce9fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5167a0f3fef1dd73", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/run-now-button.tsx:10"}, "properties": {"repobilityId": "1c972f31c503853b", "scanner": "scanner-primary", "fingerprint": "5167a0f3fef1dd73", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1ea750d8ee9c8d8a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/account/sonar/_components/scope-table.tsx:23"}, "properties": {"repobilityId": "4dae00f406309b28", "scanner": "scanner-primary", "fingerprint": "1ea750d8ee9c8d8a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-12c2858ddca5541e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/account/sonar/_components/change-detail-compare.tsx:31"}, "properties": {"repobilityId": "e163b2a5f3001d83", "scanner": "scanner-primary", "fingerprint": "12c2858ddca5541e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-492919e1e757a334", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/register/page.tsx:5"}, "properties": {"repobilityId": "791e56bcfd4fbde4", "scanner": "scanner-primary", "fingerprint": "492919e1e757a334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1821d1d068402bf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/keycloak.ts:36"}, "properties": {"repobilityId": "958815d42958034c", "scanner": "scanner-primary", "fingerprint": "a1821d1d068402bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9cc56ff2087845c6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/oidc.ts:67"}, "properties": {"repobilityId": "446936ec4bfd1a15", "scanner": "scanner-primary", "fingerprint": "9cc56ff2087845c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b49ad9e94347fe7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/haiwave-api.ts:1158"}, "properties": {"repobilityId": "96a7b89598aa60de", "scanner": "scanner-primary", "fingerprint": "5b49ad9e94347fe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b95b5d1516ff347", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/haiwave-api.ts:179"}, "properties": {"repobilityId": "e4061f45aedd5392", "scanner": "scanner-primary", "fingerprint": "8b95b5d1516ff347", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2dcb3cfcdbcb1435", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/swr-fetcher.ts:9"}, "properties": {"repobilityId": "ae66d0850807f262", "scanner": "scanner-primary", "fingerprint": "2dcb3cfcdbcb1435", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c0f63734ee830209", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/walk.spec.ts:505"}, "properties": {"repobilityId": "08dce121c8e21c9f", "scanner": "scanner-primary", "fingerprint": "c0f63734ee830209", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15955a9da20f0d8a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/refined-pd.spec.ts:142"}, "properties": {"repobilityId": "7b5b78e50fb63647", "scanner": "scanner-primary", "fingerprint": "15955a9da20f0d8a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed13bfa9064adf5c", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/audit-flow.spec.ts:176"}, "properties": {"repobilityId": "de4322a577e15f3c", "scanner": "scanner-primary", "fingerprint": "ed13bfa9064adf5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70fcae2d13c708b6", "level": "note", "message": {"text": "17 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "f21675bed249619c", "scanner": "scanner-primary", "fingerprint": "70fcae2d13c708b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}