{"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-b278301ad1c0f9d3", "name": "Possibly dead Python function: patched_getaddrinfo", "shortDescription": {"text": "Possibly dead Python function: patched_getaddrinfo"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dc368922a0c16de6", "name": "Possibly dead Python function: patched_gethostbyname", "shortDescription": {"text": "Possibly dead Python function: patched_gethostbyname"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4023dea31a6dfa9", "name": "Possibly dead Python function: patched_gethostbyname_ex", "shortDescription": {"text": "Possibly dead Python function: patched_gethostbyname_ex"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7127f37378511ec", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/search-modal.tsx:562", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/search-modal.tsx:562"}, "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-419328c5b6790d1d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 mc/src/components/search-modal.tsx:583", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mc/src/components/search-modal.tsx:583"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f0e6674f3513b548", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/sessions-view.tsx:142", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/sessions-view.tsx:142"}, "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-201b57e4d7905180", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/usage-view.tsx:270", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/usage-view.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-6ec41d594070166f", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/skills-view.tsx:1405", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/skills-view.tsx:1405"}, "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-6ab6415a66d89fd5", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/integrations-view.tsx:773", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/integrations-view.tsx:773"}, "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-323cc8fab85a3f20", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/sidebar.tsx:316", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/sidebar.tsx:316"}, "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-95c48ece3f512d34", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/audio-view.tsx:563", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/audio-view.tsx:563"}, "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-ebc12bc3286d8dc5", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/calendar-view.tsx:696", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/calendar-view.tsx:696"}, "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-4f96764678b987ea", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/dashboard-view.tsx:1504", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/dashboard-view.tsx:1504"}, "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-32e08c3496428152", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/hooks-view.tsx:303", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/hooks-view.tsx:303"}, "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-c87a86ddeeb3a561", "name": "React Flow <MiniMap> without dark background \u2014 mc/src/components/memory-graph-view.tsx:1778", "shortDescription": {"text": "React Flow <MiniMap> without dark background \u2014 mc/src/components/memory-graph-view.tsx:1778"}, "fullDescription": {"text": "A bare <MiniMap> renders with the vendor's white default in dark themes. Wrap the canvas in a class that overrides `.react-flow__minimap` background, or pass an explicit `style`/`maskColor`/`bgColor`.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.minimap.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96207c13876c544f", "name": "React Flow <Controls> without dark theming \u2014 mc/src/components/memory-graph-view.tsx:1779", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 mc/src/components/memory-graph-view.tsx:1779"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b3d57413d3f73b4", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/memory-graph-view.tsx:1903", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/memory-graph-view.tsx:1903"}, "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-6a51b507d82ec3da", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/header.tsx:292", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/header.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-dcab46eb3b839a9b", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/activity-view.tsx:157", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/activity-view.tsx:157"}, "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-2a03a62ccdd3a49d", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/notification-center.tsx:416", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/notification-center.tsx:416"}, "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-3e8c29fca9d85885", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/vector-view.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/vector-view.tsx:149"}, "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-ec4fcec6bb3b10f8", "name": "React Flow <Controls> without dark theming \u2014 mc/src/components/agents-view.tsx:1587", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 mc/src/components/agents-view.tsx:1587"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e966b83a89eb71c0", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/agents-view.tsx:311", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/agents-view.tsx:311"}, "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-8bb9f7a359104340", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/chat-view.tsx:367", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/chat-view.tsx:367"}, "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-6eaeadb54d055b63", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/docs-view.tsx:967", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/docs-view.tsx:967"}, "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-b0d8f22a23927259", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/memory-view.tsx:1125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/memory-view.tsx:1125"}, "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-b760027cfe6bd402", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/models-view.tsx:220", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/models-view.tsx:220"}, "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-f00a84a45cb40538", "name": "Stray `console.log` in TS/JS \u2014 mc/src/components/models-view.tsx:1737", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/components/models-view.tsx:1737"}, "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-9bed118d83bfcbfc", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/tasks-view.tsx:432", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/tasks-view.tsx:432"}, "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-990ec81832a8e96e", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/permissions-view.tsx:850", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/permissions-view.tsx:850"}, "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-e9ebfb96012218ac", "name": "\"active\" state uses light bg in a dark theme \u2014 mc/src/components/agentx-switcher.tsx:50", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 mc/src/components/agentx-switcher.tsx:50"}, "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-237de9b6029583da", "name": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/config-editor.tsx:1946", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/config-editor.tsx:1946"}, "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-059f5b3aadb8453f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 mc/src/components/ui/chart.tsx:83", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mc/src/components/ui/chart.tsx:83"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e05da6b7ef587a6a", "name": "Stray `console.log` in TS/JS \u2014 mc/src/app/api/chat/route.ts:316", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/app/api/chat/route.ts:316"}, "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-d385312fbbedcf76", "name": "Stray `console.log` in TS/JS \u2014 mc/src/lib/request-log.ts:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/lib/request-log.ts:6"}, "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-8ecd2a4e16218a8b", "name": "Stray `console.log` in TS/JS \u2014 mc/src/lib/inprocess-usage-scheduler.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/lib/inprocess-usage-scheduler.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1db75c1d6813450b", "name": "Stray `console.log` in TS/JS \u2014 scripts/corpus-runner-0127.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/corpus-runner-0127.js:70"}, "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-d5152d48a68eba2b", "name": "Stray `console.log` in TS/JS \u2014 scripts/subscription-audit.js:478", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/subscription-audit.js:478"}, "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-2ae08ce9a1e42b31", "name": "Stray `console.log` in TS/JS \u2014 scripts/corpus-0128-sample-extractor.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/corpus-0128-sample-extractor.js:103"}, "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-d4e43ac3c9a63aea", "name": "Stray `console.log` in TS/JS \u2014 scripts/with-agentx-claim.js:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/with-agentx-claim.js:124"}, "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-950febdd21b6dcfd", "name": "Stray `console.log` in TS/JS \u2014 scripts/master-brain-canary.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/master-brain-canary.js:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f510268fc3d173cd", "name": "Stray `console.log` in TS/JS \u2014 scripts/token-burn-report.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/token-burn-report.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4bfebc1cd735e3e4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync-dependencies.js:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-dependencies.js:118"}, "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-98f03c3329253dc4", "name": "Stray `console.log` in TS/JS \u2014 scripts/rankings-with-confidence.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rankings-with-confidence.js:70"}, "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-8bc2553a18b17f03", "name": "Stray `console.log` in TS/JS \u2014 scripts/drift-analysis-0135.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/drift-analysis-0135.js:84"}, "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-6a0e216b82377614", "name": "Stray `console.log` in TS/JS \u2014 rag/ingestWorker.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 rag/ingestWorker.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76f344ff87b7745e", "name": "Stray `console.log` in TS/JS \u2014 rag/scripts/extract-rag-zips.js:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 rag/scripts/extract-rag-zips.js:72"}, "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-89e40c03bf04316c", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-benchmark-prompts.js:313", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-benchmark-prompts.js:313"}, "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-cada5da509c4a764", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/benchmark-compression.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/benchmark-compression.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-222ea1b105aa64f0", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/host-variance-investigation.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/host-variance-investigation.js:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c87ed70787cca26", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/context-performance-sweep.js:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/context-performance-sweep.js:66"}, "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-07cf7c2f32752a7e", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/diagnose-empty-responses.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/diagnose-empty-responses.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-37b91fffaf678802", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-quality-scores.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-quality-scores.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-39f5493409d8e3f8", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/run-ugbrutal-profile-l1-l2.js:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/run-ugbrutal-profile-l1-l2.js:75"}, "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-dc0a8d4528403812", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/verify0111LiveBatch.js:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/verify0111LiveBatch.js:95"}, "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-b52829b360dcd005", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/analyze-quality-scores.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/analyze-quality-scores.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf5da7e1da10384f", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/calibration-sprint.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/calibration-sprint.js:62"}, "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-72b48a6584cfd82b", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/fairness-report.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/fairness-report.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f52a481c5ec7dd1", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/rescore-deterministic.js:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/rescore-deterministic.js:135"}, "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-adac36b1e7259924", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-modelprofile-category-metadata.js:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-modelprofile-category-metadata.js:88"}, "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-51a897080c9cf750", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/fit-judge-confidence.js:425", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/fit-judge-confidence.js:425"}, "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-17cc31653ab7e43b", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-token-budget.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-token-budget.js:21"}, "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-a71b7a3275d02440", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/seed-judge-ground-truth.js:452", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/seed-judge-ground-truth.js:452"}, "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-3a17f35bdb587171", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/corpus-0127-ac6-rerun.js:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/corpus-0127-ac6-rerun.js:93"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c50a60230ebb15a", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-batch-id-to-objectid.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-batch-id-to-objectid.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-554e207c1c9808ef", "name": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-prompt-coverage.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-prompt-coverage.js:21"}, "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-181349afd2fd18bb", "name": "Stray `console.log` in TS/JS \u2014 benchmark/public/js/results-explorer.js:170", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/public/js/results-explorer.js:170"}, "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-c6e3c50cde8088e8", "name": "Icon-only button without accessible name \u2014 benchmark/public/js/benchmark-v2/batch-config.js:1464", "shortDescription": {"text": "Icon-only button without accessible name \u2014 benchmark/public/js/benchmark-v2/batch-config.js:1464"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49e102e8e9b8b1af", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 benchmark/src/services/scoring/formatComplia", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 benchmark/src/services/scoring/formatComplianceScorer.js:311"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eff2fc2652eb70d4", "name": "Stray `console.log` in TS/JS \u2014 core/server.js:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/server.js:124"}, "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-46495545596304a9", "name": "Stray `console.log` in TS/JS \u2014 core/tests/jestSuiteTimerReporter.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/jestSuiteTimerReporter.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a3a7381b548c0f68", "name": "Stray `console.log` in TS/JS \u2014 core/tests/setup-env.js:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/setup-env.js:88"}, "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-b4fbd1b25414bb54", "name": "Stray `console.log` in TS/JS \u2014 core/tests/test-server.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/test-server.js:12"}, "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-9fe72ad87b095642", "name": "Stray `console.log` in TS/JS \u2014 core/tests/scripts/seed-negative-feedback.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/scripts/seed-negative-feedback.js:58"}, "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-997b37f371d7fd26", "name": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/onboarding-wizard.spec.js:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/onboarding-wizard.spec.js:124"}, "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-64f985e866c6d649", "name": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/performance-dashboard-drilldown.spec.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/performance-dashboard-drilldown.spec.js:41"}, "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-5d5362168dca2deb", "name": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/advanced-filtering.spec.js:702", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/advanced-filtering.spec.js:702"}, "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-1d1865ca153fed33", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/migrate-pinned-models.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/migrate-pinned-models.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85abcb3a914a42c2", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/migrate-sovereignty-to-preferences.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/migrate-sovereignty-to-preferences.js:26"}, "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-ae25e9a526510278", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/seed-persona.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/seed-persona.js:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43b1ff17616a9aee", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/drop-workspace-indexes-0124.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/drop-workspace-indexes-0124.js:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94cc111ccbb1ab30", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/sync-openclaw-schedule.js:144", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/sync-openclaw-schedule.js:144"}, "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-0b8e5a4b4172ce56", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/buddy-v1-archive.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/buddy-v1-archive.js:21"}, "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-c855258799be29ae", "name": "Stray `console.log` in TS/JS \u2014 core/scripts/create-indexes.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/create-indexes.js:16"}, "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-6d7f7532fce35457", "name": "Stray `console.log` in TS/JS \u2014 core/public/js/performance-page.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/performance-page.js:26"}, "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-056a4bb19449363e", "name": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/api-utils.js:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/api-utils.js:126"}, "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-6ca6a108a72f0bce", "name": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/shared.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/shared.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-687bb144f70e7313", "name": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/general-utils.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/general-utils.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-425e6a259c96b552", "name": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/geo-utils.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/geo-utils.js:44"}, "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-da21be20be558816", "name": "Icon-only button without accessible name \u2014 core/public/js/components/buddy-widget-dom.js:51", "shortDescription": {"text": "Icon-only button without accessible name \u2014 core/public/js/components/buddy-widget-dom.js:51"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8fdc64fb71a83386", "name": "Stray `console.log` in TS/JS \u2014 core/public/host-agent/agent.js:270", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 core/public/host-agent/agent.js:270"}, "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-4ef9528ec2c51ac8", "name": "TODO/FIXME marker in shipping code \u2014 core/src/app.js:60", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 core/src/app.js:60"}, "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-1564e3b9599866bf", "name": "Privileged port 66 in use", "shortDescription": {"text": "Privileged port 66 in use"}, "fullDescription": {"text": "Port 66 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f1743df07a3b826", "name": "Dockerfile runs as root: benchmark/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: benchmark/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a674050f057fd19b", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0accc5790790dbf5", "name": "Dockerfile runs as root: core/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: core/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-954901b2b3a05f5e", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-87fccf8159def0da", "name": "Insecure pattern 'node_child_process' in mc/next.config.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/next.config.ts:2"}, "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-688f1ede66eb5ef9", "name": "Insecure pattern 'dangerous_innerhtml' in mc/src/components/search-modal.tsx:583", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in mc/src/components/search-modal.tsx:583"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a944790d34d6ef1", "name": "Insecure pattern 'dangerous_innerhtml' in mc/src/components/ui/chart.tsx:83", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in mc/src/components/ui/chart.tsx:83"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa88b8ac62ba558a", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/doctor/run/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/doctor/run/route.ts:2"}, "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-0b3c165361a81701", "name": "Insecure pattern 'exec_used' in mc/src/app/api/tailscale/route.ts:63", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/tailscale/route.ts:63"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bbfdc026675c0fb5", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/tailscale/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/tailscale/route.ts:2"}, "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-5dec48d60bcba3d6", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/terminal/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/terminal/route.ts:2"}, "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-a510f3cda381e99c", "name": "Insecure pattern 'exec_used' in mc/src/app/api/memory/route.ts:162", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/memory/route.ts:162"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-679a1d3c852a403d", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/memory/route.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/memory/route.ts:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff50fb8b48fec55e", "name": "Insecure pattern 'exec_used' in mc/src/app/api/memory/graph/route.ts:749", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/memory/graph/route.ts:749"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-397ab66295f23a36", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/memory/graph/route.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/memory/graph/route.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-141cc08026c2e6c5", "name": "Insecure pattern 'exec_used' in mc/src/app/api/gateway/route.ts:94", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/gateway/route.ts:94"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c18c01c5dc5fced0", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/gateway/route.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/gateway/route.ts:6"}, "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-a42c2b4b6df05fb6", "name": "Insecure pattern 'exec_used' in mc/src/app/api/gateway/diagnostics/route.ts:79", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/gateway/diagnostics/route.ts:79"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f7184ac1d0dee11", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/gateway/diagnostics/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/gateway/diagnostics/route.ts:2"}, "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-ca1611a80cd4b711", "name": "Insecure pattern 'exec_used' in mc/src/app/api/skills/route.ts:339", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/skills/route.ts:339"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aade5ea4f23a60bb", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/skills/install/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/skills/install/route.ts:2"}, "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-c1674a2d283961a5", "name": "Insecure pattern 'exec_used' in mc/src/app/api/skills/clawhub/route.ts:193", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/skills/clawhub/route.ts:193"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbc7306cbc6df673", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/skills/clawhub/route.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/skills/clawhub/route.ts:2"}, "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-cbb86264f0b5a519", "name": "Insecure pattern 'exec_used' in mc/src/app/api/stats/stream/route.ts:162", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/stats/stream/route.ts:162"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8893ed325abe474d", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/stats/stream/route.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/stats/stream/route.ts:4"}, "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-0c6ecda2124caf8f", "name": "Insecure pattern 'node_child_process' in mc/src/app/api/mission-control-update/route.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/mission-control-update/route.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-79c9fb1874f6e3e9", "name": "Insecure pattern 'exec_used' in mc/src/lib/paths.ts:157", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/lib/paths.ts:157"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae2e0dc612349b18", "name": "Insecure pattern 'node_child_process' in mc/src/lib/paths.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/paths.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d4b4697cd63c02b", "name": "Insecure pattern 'exec_used' in mc/src/lib/openclaw-cli.ts:126", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/lib/openclaw-cli.ts:126"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d23ab730192f8025", "name": "Insecure pattern 'node_child_process' in mc/src/lib/openclaw-cli.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/openclaw-cli.ts: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-42ee94d098ccd444", "name": "Insecure pattern 'exec_used' in mc/src/lib/usage-db.ts:43", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/lib/usage-db.ts:43"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1c51f328065b154", "name": "Insecure pattern 'node_child_process' in mc/src/lib/usage-db.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/usage-db.ts: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-dbeddd8d149dd36b", "name": "Insecure pattern 'exec_used' in mc/src/lib/gog-cli.ts:100", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/lib/gog-cli.ts:100"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7e80d30ee14f450", "name": "Insecure pattern 'node_child_process' in mc/src/lib/gog-cli.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/gog-cli.ts:6"}, "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-607040088521cc6f", "name": "Insecure pattern 'exec_used' in mc/src/lib/gog-google.ts:171", "shortDescription": {"text": "Insecure pattern 'exec_used' in mc/src/lib/gog-google.ts:171"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-850248b915eb6292", "name": "Insecure pattern 'node_child_process' in mc/src/lib/gog-google.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/gog-google.ts:5"}, "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-ae0bba8d0956526c", "name": "Insecure pattern 'node_child_process' in scripts/with-agentx-claim.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/with-agentx-claim.js:18"}, "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-1948f94310fdedac", "name": "Insecure pattern 'weak_hash' in rag/CLAUDE.md:107", "shortDescription": {"text": "Insecure pattern 'weak_hash' in rag/CLAUDE.md:107"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2a738a2b4ad6298", "name": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/documents.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/documents.js:114"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b3d351e338355d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/dashboard.js:147", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/dashboard.js:147"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fb5f6709218d9bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/search.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/search.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1122e8000d6d3418", "name": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/upload.js:228", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/upload.js:228"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60ca2aeb755a9638", "name": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/maintenance.js:52", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/maintenance.js:52"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20b75d0025fda904", "name": "Insecure pattern 'node_child_process' in rag/src/helpers/zip.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in rag/src/helpers/zip.js:14"}, "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-9d21cc7e5ab85ea3", "name": "Insecure pattern 'node_child_process' in rag/src/services/ingestWorker.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in rag/src/services/ingestWorker.js:4"}, "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-b00aa6b640cd4a52", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer.js:234", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer.js:234"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89caaa682f8586bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer-charts.js:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer-charts.js:133"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e9d701c7d502aef", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer-inspector.js:91", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer-inspector.js:91"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd4a62e7f649e849", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/utils/shortcuts-modal.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/utils/shortcuts-modal.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7ae524f865b95fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/components/error-banner.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/components/error-banner.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f1168be144a6c63", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/unified-board.js:270", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/unified-board.js:270"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7e71e12d86184a7", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/combined-board.js:407", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/combined-board.js:407"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4fe819fd5ed9fd6b", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/generalist-board.js:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/generalist-board.js:237"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08c187fd13da8920", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/scoring-system.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/scoring-system.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0e9cc898da6104a", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/category-map.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/category-map.js:22"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e4c11e5b54342e0", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/podium.js:195", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/podium.js:195"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-538471baaf3ed280", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/hero.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/hero.js:69"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07a6a27ac88eba61", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/index.js:74", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/index.js:74"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f1fc26ae62ad249", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/models.js:719", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/models.js:719"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d42c72e126371802", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/index.js:152", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/index.js:152"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-789501c6714f2135", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/hosts.js:461", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/hosts.js:461"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a531128e197f885", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/deploy.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/deploy.js:213"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-172808e8c1ecc286", "name": "Insecure pattern 'insert_adjacent_html' in benchmark/public/js/model-profiler/components/profile-host-dialog.js:33", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in benchmark/public/js/model-profiler/components/profile-host-dialog.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6153b57c67428ebd", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark/scoring-profile.js:349", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark/scoring-profile.js:349"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edb1b1511e00a859", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/hero-picks.js:49", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/hero-picks.js:49"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bbd6b5e533c6537f", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/index.js:8", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/index.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef26ba7a6a2dda48", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/ranked-table.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/ranked-table.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a81834c7b5baaec7", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/scatter-plot.js:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/scatter-plot.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc0e280cbc018b4d", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/anomalies.js:159", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/anomalies.js:159"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13416f6aba4b8b65", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/model-arena.js:512", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/model-arena.js:512"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc375e1ed102f50a", "name": "Insecure pattern 'direct_outerhtml_assignment' in benchmark/public/js/benchmark-v2/model-arena.js:623", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in benchmark/public/js/benchmark-v2/model-arena.js:623"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-267264c65ab50bff", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/judge-roster.js:311", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/judge-roster.js:311"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6c5aee532236588", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/batch-card.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/batch-card.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90b67886bbde8259", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/live-detail.js:917", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/live-detail.js:917"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-091aa5e1d98fe650", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/data-management.js:105", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/data-management.js:105"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cfd9d0e85b3a484", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/launch-summary.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/launch-summary.js:22"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ac4e2ca6b74e6a8", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/action-zone.js:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/action-zone.js:54"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eaf2bcdd164f35af", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/batch-config.js:123", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/batch-config.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00a1e78a7bf5e2e9", "name": "Insecure pattern 'insert_adjacent_html' in benchmark/public/js/benchmark-v2/batch-config.js:174", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in benchmark/public/js/benchmark-v2/batch-config.js:174"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f50bab854ec91555", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/infrastructure.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/infrastructure.js:22"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82e98abf31afec3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/event-log.js:165", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/event-log.js:165"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f5d72e70d55e102", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/setup/index.js:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/setup/index.js:99"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d33f56167fb7f3f", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/gap-analysis.js:162", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/gap-analysis.js:162"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8062d8d1eba491f4", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/detail-panel.js:881", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/detail-panel.js:881"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1cd4b93c5a95309d", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/results-ledger.js:111", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/results-ledger.js:111"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53ce63d89d21696d", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/the-bench.js:143", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/the-bench.js:143"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df003ea2e1c595f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/judge-roster.js:121", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/judge-roster.js:121"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31891c09f5755ad4", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/judging-config.js:130", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/judging-config.js:130"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14e2c8344078439d", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/discrimination.js:91", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/discrimination.js:91"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a94fa3870b876fed", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/hero.js:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/hero.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e55e78d444dd336a", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/calibration.js:300", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/calibration.js:300"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6873113ea76895a8", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/index.js:41", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/index.js:41"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de508d78c2e899c1", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/review-queue.js:192", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/review-queue.js:192"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb4fe3c018250c26", "name": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/test-library.js:55", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/test-library.js:55"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6b0752ff99a2f8b", "name": "Insecure pattern 'node_child_process' in core/scripts/run-jest.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/scripts/run-jest.js: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-214df630cbe66002", "name": "Insecure pattern 'node_child_process' in core/routes/operations.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/routes/operations.js:15"}, "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-e8a22ad43aa943ba", "name": "Insecure pattern 'node_child_process' in core/routes/cluster-schedule.js:242", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/routes/cluster-schedule.js:242"}, "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-df3cdff14930500c", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/databases.js:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/databases.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6819befe977929b", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/network.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/network.js:40"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a812b745be722f54", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-hermes.js:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-hermes.js:46"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e508ebd145daca8", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/persona-selector.js:122", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/persona-selector.js:122"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5306180ba8ff83cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-unified.js:89", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-unified.js:89"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-151d55038a1c302c", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-tasks.js:89", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-tasks.js:89"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-148ea68629c1c4c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-recommendations.js:67", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-recommendations.js:67"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ffc94aebe5496fd9", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-inference.js:118", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-inference.js:118"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0825f71dc85d49b", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/performance-page.js:304", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/performance-page.js:304"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa17d7c529613f65", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-alerts.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-alerts.js:93"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-684660c0ebe3b31f", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/buddy-explorer.js:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/buddy-explorer.js:47"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-974275ffc4c2919d", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/roundtable.js:67", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/roundtable.js:67"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56447f8d6243bcc2", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/janitor-profiles.js:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/janitor-profiles.js:65"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d39af65f8ca456bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-rag.js:81", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-rag.js:81"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7fd3bee8476ea978", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/analytics-cost.js:253", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/analytics-cost.js:253"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-585f766bd24a3855", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/files.js:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/files.js:124"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-162f641b4062302a", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-execution-config.js:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-execution-config.js:76"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6dddfe7d3c5d625e", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-performance.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-performance.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78fe0a22c082386b", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/voice.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/voice.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eff705117b19b54d", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/cluster-schedule.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/cluster-schedule.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b002eb3ae6ac8784", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-comparison.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-comparison.js:69"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8719c3ee88055118", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-health.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-health.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-484a3a1b092a5781", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/janitor.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/janitor.js:40"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc4c09fbc3bf8475", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/buddy-page.js:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/buddy-page.js:46"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-886db5cf83b4e512", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/cluster-schedule-services.js:27", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/cluster-schedule-services.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ff7599c91517827", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-cluster.js:652", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-cluster.js:652"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00db2c1cdb23d9b6", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/live-data-dashboard.js:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/live-data-dashboard.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-24a5de8c4d7b9356", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-inference-health.js:323", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-inference-health.js:323"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4c056b8648f6071", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-routing.js:608", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-routing.js:608"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2df7a5e67d05fc2e", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/performance-baselines.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/performance-baselines.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-514ed1a7d7a43f75", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-openclaw.js:72", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-openclaw.js:72"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-205cca1dc33e685d", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/storage.js:91", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/storage.js:91"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6425b310eb66043", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/backup.js:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/backup.js:47"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-277bcb04f28b0c6d", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/docjanitor.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/docjanitor.js:69"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f6d15e4643b18d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/utils/dom-utils.js:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/utils/dom-utils.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bb8adb70ccefd1fb", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/utils/shortcuts-modal.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/utils/shortcuts-modal.js:53"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6add35c14a2eb3d", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/AgentListView.js:112", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/AgentListView.js:112"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-255c56fbf4744e61", "name": "Insecure pattern 'insert_adjacent_html' in core/public/js/components/AgentListView.js:272", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in core/public/js/components/AgentListView.js:272"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39d7190b813e7daf", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/buddy.js:348", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/buddy.js:348"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71a9d93128c4f96a", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/buddy-minichat.js:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/buddy-minichat.js:90"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a333a5fa178635d", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/chat-intelligence.js:123", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/chat-intelligence.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e535cfd579249633", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-profile.js:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-profile.js:87"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-590945d2f19d7e0b", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-main.js:184", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-main.js:184"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9bf0bcd1333afff6", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-agents.js:130", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-agents.js:130"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b66c0e70af4c9efd", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-history.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-history.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2bedf132580136aa", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-messaging.js:81", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-messaging.js:81"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d190c68b7d392d6b", "name": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-config.js:540", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-config.js:540"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c97ec2d21437af60", "name": "Insecure pattern 'node_child_process' in core/public/host-agent/agent.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/public/host-agent/agent.js:4"}, "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-9d16193dec797fbf", "name": "Insecure pattern 'node_child_process' in core/src/services/backupService.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/src/services/backupService.js:9"}, "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-62466a9073cab03f", "name": "Insecure pattern 'node_child_process' in core/src/services/ollamaVramService.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/src/services/ollamaVramService.js: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-7476e050b327fe8d", "name": "Insecure pattern 'node_child_process' in core/src/services/memoryAdapters.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/src/services/memoryAdapters.js:7"}, "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-dd91807fc02877e8", "name": "Insecure pattern 'node_child_process' in core/src/services/customModelService.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in core/src/services/customModelService.js:4"}, "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-fe2479a4e31cdcd1", "name": "Insecure pattern 'exec_used' in core/src/services/openclawClient.js:182", "shortDescription": {"text": "Insecure pattern 'exec_used' in core/src/services/openclawClient.js:182"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abc839b3cac14aa0", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-08fb0a8bd4dff1b0", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b31fb89bd0ab53e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cdc8abff1116715", "name": "Very large file: mc/src/components/skills-view.tsx (1768 lines)", "shortDescription": {"text": "Very large file: mc/src/components/skills-view.tsx (1768 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-bef012cc9c27bb19", "name": "Very large file: mc/src/components/integrations-view.tsx (1933 lines)", "shortDescription": {"text": "Very large file: mc/src/components/integrations-view.tsx (1933 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-7b431661ba8ddbee", "name": "Very large file: mc/src/components/audio-view.tsx (1882 lines)", "shortDescription": {"text": "Very large file: mc/src/components/audio-view.tsx (1882 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-6d214e4fd9864936", "name": "Very large file: mc/src/components/cron-view.tsx (3427 lines)", "shortDescription": {"text": "Very large file: mc/src/components/cron-view.tsx (3427 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-7f34794aca8c7737", "name": "Very large file: mc/src/components/dashboard-view.tsx (1636 lines)", "shortDescription": {"text": "Very large file: mc/src/components/dashboard-view.tsx (1636 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-718a23626d0cdfb5", "name": "Very large file: mc/src/components/security-view.tsx (1561 lines)", "shortDescription": {"text": "Very large file: mc/src/components/security-view.tsx (1561 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-d428b06b57c92f7a", "name": "Very large file: mc/src/components/memory-graph-view.tsx (2069 lines)", "shortDescription": {"text": "Very large file: mc/src/components/memory-graph-view.tsx (2069 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-af1ea7fe0cdadd6f", "name": "Very large file: mc/src/components/onboarding-wizard.tsx (1605 lines)", "shortDescription": {"text": "Very large file: mc/src/components/onboarding-wizard.tsx (1605 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-75227f3147b687ef", "name": "Very large file: mc/src/components/vector-view.tsx (1107 lines)", "shortDescription": {"text": "Very large file: mc/src/components/vector-view.tsx (1107 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-d544a34afc51f38e", "name": "Very large file: mc/src/components/agents-view.tsx (4836 lines)", "shortDescription": {"text": "Very large file: mc/src/components/agents-view.tsx (4836 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-954f3fda62bd3202", "name": "Very large file: mc/src/components/chat-view.tsx (1444 lines)", "shortDescription": {"text": "Very large file: mc/src/components/chat-view.tsx (1444 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-94c09ca567e076b7", "name": "Very large file: mc/src/components/docs-view.tsx (1322 lines)", "shortDescription": {"text": "Very large file: mc/src/components/docs-view.tsx (1322 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-cb817daed0aa8cb6", "name": "Very large file: mc/src/components/memory-view.tsx (1701 lines)", "shortDescription": {"text": "Very large file: mc/src/components/memory-view.tsx (1701 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-73f4c5aa36e98096", "name": "Very large file: mc/src/components/models-view.tsx (1909 lines)", "shortDescription": {"text": "Very large file: mc/src/components/models-view.tsx (1909 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-01e68a4e2aa78db9", "name": "Very large file: mc/src/components/tasks-view.tsx (1624 lines)", "shortDescription": {"text": "Very large file: mc/src/components/tasks-view.tsx (1624 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-fd1cc715b6a8eb41", "name": "Very large file: mc/src/components/heartbeat-manager.tsx (1571 lines)", "shortDescription": {"text": "Very large file: mc/src/components/heartbeat-manager.tsx (1571 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-9af490767e868028", "name": "Very large file: mc/src/components/config-editor.tsx (2072 lines)", "shortDescription": {"text": "Very large file: mc/src/components/config-editor.tsx (2072 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-115729b515ebe673", "name": "Very large file: benchmark/tests/integration/benchmark.test.js (2352 lines)", "shortDescription": {"text": "Very large file: benchmark/tests/integration/benchmark.test.js (2352 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-3398e44b4f0052c5", "name": "Very large file: benchmark/public/js/model-profiler/models.js (2029 lines)", "shortDescription": {"text": "Very large file: benchmark/public/js/model-profiler/models.js (2029 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-278afc8330fa124e", "name": "Very large file: benchmark/public/js/benchmark-v2/batch-config.js (1797 lines)", "shortDescription": {"text": "Very large file: benchmark/public/js/benchmark-v2/batch-config.js (1797 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-d1739c7d09e170c0", "name": "Very large file: core/public/js/cluster-schedule.js (1158 lines)", "shortDescription": {"text": "Very large file: core/public/js/cluster-schedule.js (1158 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-d53e6fc6e96b42a4", "name": "43 TODO/FIXME markers", "shortDescription": {"text": "43 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 575 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 269 placeholder/mock markers across 58 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6cdbc23881055e3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/search-modal.tsx:228", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/search-modal.tsx:228"}, "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-9fa8a79b63a6ad08", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/skills-view.tsx:1601", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/skills-view.tsx:1601"}, "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-0f4668498c677185", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/audio-view.tsx:1301", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/audio-view.tsx:1301"}, "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-e057be64ee9d93f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/cron-view.tsx:2424", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/cron-view.tsx:2424"}, "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-197126b4baaf7dfa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/header.tsx:433", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/header.tsx:433"}, "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-773ae6289fd010be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/onboarding-wizard.tsx:283", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/onboarding-wizard.tsx:283"}, "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-ea746f083e219d3b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/vector-view.tsx:582", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/vector-view.tsx:582"}, "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-af5ccaca00b2e199", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/agents-view.tsx:2640", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/agents-view.tsx:2640"}, "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-188f3a9fedd65aa9", "name": "Commented-code block (5 lines) in mc/src/components/chat-view.tsx:395", "shortDescription": {"text": "Commented-code block (5 lines) in mc/src/components/chat-view.tsx:395"}, "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-57294108f6be6abd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/chat-view.tsx:1215", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/chat-view.tsx:1215"}, "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-5d95c609cf6fec93", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/docs-view.tsx:430", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/docs-view.tsx:430"}, "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-ec78699bd65e4f62", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/memory-view.tsx:289", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/memory-view.tsx:289"}, "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-9f52824ff138e7de", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/subagents-manager-view.tsx:358", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/subagents-manager-view.tsx:358"}, "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-513bfee93a6a9a1c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/tasks-view.tsx:269", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/tasks-view.tsx:269"}, "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-b11f6549f5e532f6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/heartbeat-manager.tsx:851", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/heartbeat-manager.tsx:851"}, "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-e754875c405c87dd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/config-editor.tsx:1625", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/config-editor.tsx:1625"}, "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-39ab4b24ae20fc24", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/google-calendar.ts:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/google-calendar.ts:80"}, "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-1f4209121bff87aa", "name": "Legacy-named symbol `_notifyLegacy` in mc/src/lib/chat-store.ts:39", "shortDescription": {"text": "Legacy-named symbol `_notifyLegacy` in mc/src/lib/chat-store.ts:39"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fab73aa30fad12b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/transports/http-transport.ts:202", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/transports/http-transport.ts:202"}, "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-68981f3d5992e4a7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/transports/cli-transport.ts:68", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/transports/cli-transport.ts:68"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-864bf86d20f5d94e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/corpus-runner-0127.js:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/corpus-runner-0127.js: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-38c6a0a07b4bdd2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/documents.js:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/documents.js:44"}, "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-9f5e679f59c2219e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/dashboard.js:107", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/dashboard.js:107"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87825328d165ec25", "name": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/api.js:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/api.js:19"}, "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-59b9afca364c3a09", "name": "Commented-code block (7 lines) in rag/src/services/ragStore.js:64", "shortDescription": {"text": "Commented-code block (7 lines) in rag/src/services/ragStore.js:64"}, "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-ac45a163978db26b", "name": "Commented-code block (5 lines) in rag/src/services/embeddings.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in rag/src/services/embeddings.js: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-ecf49c961c61839b", "name": "Commented-code block (6 lines) in benchmark/server.js:301", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/server.js:301"}, "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-2ebf8d91f942bfd2", "name": "Commented-code block (10 lines) in benchmark/models/BenchmarkPrompt.js:127", "shortDescription": {"text": "Commented-code block (10 lines) in benchmark/models/BenchmarkPrompt.js:127"}, "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-02aa3abdae69ab99", "name": "Commented-code block (5 lines) in benchmark/models/JudgeGroundTruth.js:69", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/models/JudgeGroundTruth.js: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-3035588149a832ab", "name": "Commented-code block (5 lines) in benchmark/models/BenchmarkResult.js:296", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/models/BenchmarkResult.js:296"}, "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-7955e23944fe86eb", "name": "Commented-code block (7 lines) in benchmark/tests/unit/extractThinkingBlocks.test.js:27", "shortDescription": {"text": "Commented-code block (7 lines) in benchmark/tests/unit/extractThinkingBlocks.test.js: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-5e51e62d7429a97c", "name": "Commented-code block (5 lines) in benchmark/tests/unit/judgeCall.test.js:108", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/judgeCall.test.js:108"}, "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-32a10961da57dfe9", "name": "Commented-code block (5 lines) in benchmark/tests/unit/judgeFeedbackLoop.test.js:201", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/judgeFeedbackLoop.test.js:201"}, "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-c6e9b58cc03f32c6", "name": "Commented-code block (6 lines) in benchmark/tests/unit/scoring/scorerCountEnforcement0149.test.js:109", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/tests/unit/scoring/scorerCountEnforcement0149.test.js:109"}, "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-933cdd3266f276c7", "name": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/reasoningFormatGate0138.test.js:117", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/reasoningFormatGate0138.test.js:117"}, "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-1ba22edc77152672", "name": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/instructionFormatGate0144.test.js:64", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/instructionFormatGate0144.test.js:64"}, "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-85a58c85d2076ec1", "name": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/dimensionWeightWiring.test.js:210", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/dimensionWeightWiring.test.js:210"}, "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-0f782aa5928585a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/scripts/verify0111LiveBatch.js:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/scripts/verify0111LiveBatch.js:60"}, "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-0887971d712b5ad1", "name": "Commented-code block (5 lines) in benchmark/routes/profiler/pipeline.js:144", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/routes/profiler/pipeline.js: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-99478bf7de3809bd", "name": "Commented-code block (7 lines) in benchmark/routes/benchmark/core.js:81", "shortDescription": {"text": "Commented-code block (7 lines) in benchmark/routes/benchmark/core.js:81"}, "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-0c937f51cd7add75", "name": "Commented-code block (8 lines) in benchmark/public/js/components/raw-response.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in benchmark/public/js/components/raw-response.js: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-fe3c4a841681b50b", "name": "Commented-code block (6 lines) in benchmark/public/js/model-profiler/models.js:901", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/public/js/model-profiler/models.js:901"}, "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-c188ae022dc9ccea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/model-profiler/components/readiness-cache.js:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/model-profiler/components/readiness-cache.js: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-b3e1ee88fc3e27f6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/benchmark/scoring-profile.js:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/benchmark/scoring-profile.js: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-c7190d4eb5e960ff", "name": "Commented-code block (5 lines) in benchmark/public/js/benchmark-v2/helpers.js:35", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/public/js/benchmark-v2/helpers.js:35"}, "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-8dc107fdf697d7de", "name": "Commented-code block (6 lines) in benchmark/public/js/benchmark-v2/live-detail.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/public/js/benchmark-v2/live-detail.js: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-e3f80d0ab98c2abe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/benchmark-v2/data-management.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/benchmark-v2/data-management.js: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-88978de61dc192db", "name": "Commented-code block (6 lines) in benchmark/public/js/benchmark-v2/batch-config.js:81", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/public/js/benchmark-v2/batch-config.js:81"}, "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-e90c279bf3f515ad", "name": "Commented-code block (8 lines) in benchmark/public/js/courthouse-v2/index.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in benchmark/public/js/courthouse-v2/index.js: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-438815f3edd3bd14", "name": "Commented-code block (5 lines) in benchmark/src/services/judgeConfidence.js:373", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/judgeConfidence.js:373"}, "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-dfd240520ef158b5", "name": "Commented-code block (6 lines) in benchmark/src/services/qualityScorer.js:71", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/src/services/qualityScorer.js: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-58410dd96bd5cf4c", "name": "Commented-code block (5 lines) in benchmark/src/services/judgeValidation.js:78", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/judgeValidation.js:78"}, "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-0810b8f1f73d7e01", "name": "Commented-code block (7 lines) in benchmark/src/services/hostTestService.js:26", "shortDescription": {"text": "Commented-code block (7 lines) in benchmark/src/services/hostTestService.js:26"}, "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-7ec678d5c8bd1f6b", "name": "Commented-code block (5 lines) in benchmark/src/services/contextProbeService.js:262", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/contextProbeService.js:262"}, "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-63d0f4b4b65d26ea", "name": "Commented-code block (5 lines) in benchmark/src/services/modelContextResolver.js:43", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/modelContextResolver.js: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-e83fd5de84d6e72f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/referenceScorer.js:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/referenceScorer.js:101"}, "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-6eacf225d0b79196", "name": "Commented-code block (5 lines) in benchmark/src/services/decomposedJudge.js:126", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/decomposedJudge.js:126"}, "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-5a02c880b07b62a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/decomposedJudge.js:153", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/decomposedJudge.js:153"}, "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-73f03a49771604f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/profiler/adaptedModelResolver.js:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/profiler/adaptedModelResolver.js: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-a7f77de22e544bae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/profiler/liveProbeService.js:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/profiler/liveProbeService.js:57"}, "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-76fb3a41a660f41e", "name": "Commented-code block (6 lines) in benchmark/src/services/profiler/adaptationService.js:131", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/src/services/profiler/adaptationService.js:131"}, "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-aa38606f11dcba40", "name": "Commented-code block (6 lines) in benchmark/src/services/profiler/profilerOrchestrator.js:257", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/src/services/profiler/profilerOrchestrator.js:257"}, "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-1bbfe28e7e8614eb", "name": "Commented-code block (5 lines) in benchmark/src/services/scoring/judgeCall.js:22", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/scoring/judgeCall.js: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-04e07e662255c32d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/scoring/judgeCall.js:287", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/scoring/judgeCall.js:287"}, "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-edac2f201e023e0f", "name": "Commented-code block (5 lines) in benchmark/src/services/scoring/compositeScorer.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/scoring/compositeScorer.js: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-798010bfd12deae7", "name": "Commented-code block (5 lines) in benchmark/src/services/scoring/scoringConfigs.js:69", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/scoring/scoringConfigs.js: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-749b37ac8a054d79", "name": "Commented-code block (5 lines) in benchmark/src/services/benchmark/generalistScore.js:59", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/benchmark/generalistScore.js:59"}, "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-974fb8c01e8162c8", "name": "Commented-code block (6 lines) in benchmark/src/services/benchmark/batches.js:474", "shortDescription": {"text": "Commented-code block (6 lines) in benchmark/src/services/benchmark/batches.js:474"}, "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-a959e25f83fac8dc", "name": "Commented-code block (7 lines) in benchmark/src/services/benchmark/retroCalibration.js:103", "shortDescription": {"text": "Commented-code block (7 lines) in benchmark/src/services/benchmark/retroCalibration.js:103"}, "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-6487fa00f2f3b419", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/benchmark/testExecution.js:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/benchmark/testExecution.js:66"}, "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-e27a2b46712bff56", "name": "Commented-code block (7 lines) in benchmark/src/services/benchmark/index.js:148", "shortDescription": {"text": "Commented-code block (7 lines) in benchmark/src/services/benchmark/index.js:148"}, "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-9989260f57e8b814", "name": "Commented-code block (5 lines) in benchmark/src/services/benchmark/modelWarmup.js:17", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/benchmark/modelWarmup.js:17"}, "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-0e16cf89bdbf7798", "name": "Commented-code block (7 lines) in benchmark/src/services/benchmark/batchOrchestrator.js:9", "shortDescription": {"text": "Commented-code block (7 lines) in benchmark/src/services/benchmark/batchOrchestrator.js: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-efb5285e76fdc90c", "name": "Commented-code block (9 lines) in benchmark/src/services/benchmark/judgeOrchestration.js:45", "shortDescription": {"text": "Commented-code block (9 lines) in benchmark/src/services/benchmark/judgeOrchestration.js:45"}, "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-3b0b3965cd29d7bb", "name": "Commented-code block (5 lines) in benchmark/src/services/benchmark/batchHelpers.js:130", "shortDescription": {"text": "Commented-code block (5 lines) in benchmark/src/services/benchmark/batchHelpers.js:130"}, "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-5a6779856ce59166", "name": "Commented-code block (5 lines) in core/server.js:261", "shortDescription": {"text": "Commented-code block (5 lines) in core/server.js:261"}, "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-f55d74bbce76d5d3", "name": "Legacy-named symbol `nDeprecated` in core/models/CustomModel.js:338", "shortDescription": {"text": "Legacy-named symbol `nDeprecated` in core/models/CustomModel.js:338"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a5f7a3577605894", "name": "Commented-code block (11 lines) in core/models/HostPreference.js:114", "shortDescription": {"text": "Commented-code block (11 lines) in core/models/HostPreference.js:114"}, "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-26fa63f5d60c7691", "name": "Legacy-named symbol `nDeprecated` in core/models/ModelRegistry.js:460", "shortDescription": {"text": "Legacy-named symbol `nDeprecated` in core/models/ModelRegistry.js:460"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6df834ac0ca44f5b", "name": "Commented-code block (5 lines) in core/models/Conversation.js:66", "shortDescription": {"text": "Commented-code block (5 lines) in core/models/Conversation.js:66"}, "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-a5c1f48eaa829995", "name": "Commented-code block (7 lines) in core/tests/test-server.js:58", "shortDescription": {"text": "Commented-code block (7 lines) in core/tests/test-server.js:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6513cb6e81f02651", "name": "Commented-code block (6 lines) in core/tests/models/Conversation.test.js:9", "shortDescription": {"text": "Commented-code block (6 lines) in core/tests/models/Conversation.test.js: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-e7500743b214643f", "name": "Commented-code block (5 lines) in core/tests/unit/hostPreferenceService.test.js:444", "shortDescription": {"text": "Commented-code block (5 lines) in core/tests/unit/hostPreferenceService.test.js:444"}, "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-10b118a8fcbeed3a", "name": "Commented-code block (5 lines) in core/tests/middleware/internalCallerLimiter.test.js:35", "shortDescription": {"text": "Commented-code block (5 lines) in core/tests/middleware/internalCallerLimiter.test.js:35"}, "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-6c08a31b7042aec0", "name": "Legacy-named symbol `dropLegacy` in core/scripts/migrate-pinned-models.js:27", "shortDescription": {"text": "Legacy-named symbol `dropLegacy` in core/scripts/migrate-pinned-models.js:27"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d1b9a52d6c2e59fc", "name": "Legacy-named symbol `foundLegacy` in core/routes/nerve-center-host-preferences.js:367", "shortDescription": {"text": "Legacy-named symbol `foundLegacy` in core/routes/nerve-center-host-preferences.js:367"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0446ad613746e2a6", "name": "Commented-code block (5 lines) in core/routes/nerve-center-host-preferences.js:361", "shortDescription": {"text": "Commented-code block (5 lines) in core/routes/nerve-center-host-preferences.js:361"}, "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-4d7fa2e71f46edd8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/models-unified.js:220", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/models-unified.js:220"}, "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-7cacf2bdc566800c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/ollama-hosts.js:172", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/ollama-hosts.js:172"}, "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-ee680188faa133ed", "name": "Commented-code block (5 lines) in core/routes/reports.js:22", "shortDescription": {"text": "Commented-code block (5 lines) in core/routes/reports.js: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-520556057a236e19", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/data-proxy.js:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/data-proxy.js:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b19493b8d3cc6a0", "name": "Commented-code block (5 lines) in core/routes/inference.js:82", "shortDescription": {"text": "Commented-code block (5 lines) in core/routes/inference.js:82"}, "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-05797965053d11e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/hermes-openai-proxy.js:378", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/hermes-openai-proxy.js:378"}, "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-fefa4c8f64611508", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/persona-selector.js:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/persona-selector.js:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31f19f99ec1f9aa6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-unified.js:95", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-unified.js:95"}, "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-5db612d6eb0300dd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-recommendations.js:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-recommendations.js:60"}, "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-980a5998bed250c3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-page.js:335", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-page.js:335"}, "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-9823b083d16c788c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-management.js:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-management.js:96"}, "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-08d41b3f6d0c2729", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/cluster-schedule.js:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/cluster-schedule.js:74"}, "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-ab994e024e6aa789", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/buddy-page.js:289", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/buddy-page.js:289"}, "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-e7349e19ef201da8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-loadtests.js:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-loadtests.js:204"}, "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-13dad173e668dbbb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/analytics.js:157", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/analytics.js:157"}, "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-d832139c46461def", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-baselines.js:178", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-baselines.js:178"}, "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-80aff11b1793b82c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/AgentListView.js:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/AgentListView.js:77"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7bc0642f677c113", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/buddy-page-hooks.js:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/buddy-page-hooks.js:61"}, "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-038fa5bf836f2abb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/buddy.js:220", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/buddy.js:220"}, "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-c515d5c182fa0d9a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-voix.js:198", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-voix.js:198"}, "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-d9fe2691c94ec13c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-history.js:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-history.js:108"}, "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-b8de349aa6a70181", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-messaging.js:524", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-messaging.js:524"}, "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-de73afba97eacc71", "name": "Commented-code block (6 lines) in core/src/app.js:19", "shortDescription": {"text": "Commented-code block (6 lines) in core/src/app.js: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-ecc548d4b3f0017a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/app.js:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/app.js:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ff0ded572c3565b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/helpers/promptAnalysis.js:213", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/helpers/promptAnalysis.js:213"}, "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-4368a863c69aa4c3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/toolExecutor.js:123", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/toolExecutor.js:123"}, "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-142e4ad4e44a6398", "name": "Legacy-named symbol `pruneOld` in core/src/services/backupService.js:129", "shortDescription": {"text": "Legacy-named symbol `pruneOld` in core/src/services/backupService.js:129"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52aa03ccc53d6ca2", "name": "Commented-code block (7 lines) in core/src/services/hostPreferenceService.js:36", "shortDescription": {"text": "Commented-code block (7 lines) in core/src/services/hostPreferenceService.js:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-058fb4333bfce4cf", "name": "Commented-code block (6 lines) in core/src/services/modelRouterConfig.js:115", "shortDescription": {"text": "Commented-code block (6 lines) in core/src/services/modelRouterConfig.js:115"}, "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-8d4551cfc8c9592b", "name": "Commented-code block (5 lines) in core/src/services/chatService.js:189", "shortDescription": {"text": "Commented-code block (5 lines) in core/src/services/chatService.js:189"}, "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-43ecb192c18ffabf", "name": "Commented-code block (6 lines) in core/src/services/modelRouter.js:181", "shortDescription": {"text": "Commented-code block (6 lines) in core/src/services/modelRouter.js:181"}, "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-8a2f0497464bca14", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/modelRouter.js:172", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/modelRouter.js:172"}, "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-a1d9b5a1aa24e60c", "name": "Commented-code block (5 lines) in core/src/services/inferenceLanePolicy.js:92", "shortDescription": {"text": "Commented-code block (5 lines) in core/src/services/inferenceLanePolicy.js:92"}, "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-145cc0083c0a337c", "name": "Commented-code block (5 lines) in core/src/services/clusterScheduleService.js:428", "shortDescription": {"text": "Commented-code block (5 lines) in core/src/services/clusterScheduleService.js:428"}, "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-4b66f19072427ba8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/ollamaEnrichmentService.js:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/ollamaEnrichmentService.js: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-c4f4b5c02b19ee7a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/openclawClient.js:261", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/openclawClient.js: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-6df7740cacf3efc3", "name": "Commented-code block (10 lines) in core/src/services/benchmarkClaimService.js:319", "shortDescription": {"text": "Commented-code block (10 lines) in core/src/services/benchmarkClaimService.js:319"}, "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-7dedc088efd58d3d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/roundtable/notifier.js:90", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/roundtable/notifier.js:90"}, "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-443e4f3319b76e43", "name": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/modelSync/syncOrchestrator.js:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/modelSync/syncOrchestrator.js:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2b9de76d215015d", "name": "221 env vars used in code but missing from .env.example", "shortDescription": {"text": "221 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AGENTBAY_HOSTED`, `AGENTX_BASE_URL`, `AGENTX_CORE_PUBLIC_URL`, `AGENTX_CORE_URL`, `AGENTX_FETCH_TIMEOUT_MS`, `AGENTX_HOSTNAME`, `AGENTX_HOST_ID`, `AGENTX_OPENCLAW_ENABLED` + 213 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f93921e8df7b694", "name": "Dangling fetch: GET /api/rag/metrics (rag/public/js/documents.js:44)", "shortDescription": {"text": "Dangling fetch: GET /api/rag/metrics (rag/public/js/documents.js:44)"}, "fullDescription": {"text": "`rag/public/js/documents.js:44` calls `GET /api/rag/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rag/metrics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56d8bd6879693a0a", "name": "Dangling fetch: GET /api/rag/metrics (rag/public/js/dashboard.js:107)", "shortDescription": {"text": "Dangling fetch: GET /api/rag/metrics (rag/public/js/dashboard.js:107)"}, "fullDescription": {"text": "`rag/public/js/dashboard.js:107` calls `GET /api/rag/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rag/metrics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-149ef826ed185cd0", "name": "Dangling fetch: GET /api/benchmark/results?page=${paginationState.page}&limit=${paginationState.limit} (benchmark/public", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/results?page=${paginationState.page}&limit=${paginationState.limit} (benchmark/public/js/results-explorer.js:142)"}, "fullDescription": {"text": "`benchmark/public/js/results-explorer.js:142` calls `GET /api/benchmark/results?page=${paginationState.page}&limit=${paginationState.limit}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/results`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1fa16bacd0e8d90c", "name": "Dangling fetch: GET /api/profiler/hosts (benchmark/public/js/results-explorer.js:143)", "shortDescription": {"text": "Dangling fetch: GET /api/profiler/hosts (benchmark/public/js/results-explorer.js:143)"}, "fullDescription": {"text": "`benchmark/public/js/results-explorer.js:143` calls `GET /api/profiler/hosts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/profiler/hosts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9961ac5862edbe62", "name": "Dangling fetch: GET /api/benchmark/results/${resultId} (benchmark/public/js/results-explorer-inspector.js:101)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/results/${resultId} (benchmark/public/js/results-explorer-inspector.js:101)"}, "fullDescription": {"text": "`benchmark/public/js/results-explorer-inspector.js:101` calls `GET /api/benchmark/results/${resultId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/results/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3504b9880410fe1", "name": "Dangling fetch: POST /api/benchmark/results/${resultId}/rejudge (benchmark/public/js/results-explorer-inspector.js:813)", "shortDescription": {"text": "Dangling fetch: POST /api/benchmark/results/${resultId}/rejudge (benchmark/public/js/results-explorer-inspector.js:813)"}, "fullDescription": {"text": "`benchmark/public/js/results-explorer-inspector.js:813` calls `POST /api/benchmark/results/${resultId}/rejudge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/results/<p>/rejudge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-130af9a6bc47da67", "name": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/leaderboard-v2/index.js:550)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/leaderboard-v2/index.js:550)"}, "fullDescription": {"text": "`benchmark/public/js/leaderboard-v2/index.js:550` calls `GET /api/benchmark/judge/calibration-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/judge/calibration-status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1dfc5c241e4f2f8", "name": "Dangling fetch: GET /api/profiler/models (benchmark/public/js/model-profiler/components/readiness-cache.js:12)", "shortDescription": {"text": "Dangling fetch: GET /api/profiler/models (benchmark/public/js/model-profiler/components/readiness-cache.js:12)"}, "fullDescription": {"text": "`benchmark/public/js/model-profiler/components/readiness-cache.js:12` calls `GET /api/profiler/models` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/profiler/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5407f40d6dfaa4ef", "name": "Dangling fetch: GET /api/benchmark/scoring-profile (benchmark/public/js/benchmark/scoring-profile.js:31)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/scoring-profile (benchmark/public/js/benchmark/scoring-profile.js:31)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark/scoring-profile.js:31` calls `GET /api/benchmark/scoring-profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/scoring-profile`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5154c259dcec7d64", "name": "Dangling fetch: PUT /api/benchmark/scoring-profile (benchmark/public/js/benchmark/scoring-profile.js:38)", "shortDescription": {"text": "Dangling fetch: PUT /api/benchmark/scoring-profile (benchmark/public/js/benchmark/scoring-profile.js:38)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark/scoring-profile.js:38` calls `PUT /api/benchmark/scoring-profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/scoring-profile`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af3a1490a09d8490", "name": "Dangling fetch: POST /api/benchmark/scoring-profile/reset (benchmark/public/js/benchmark/scoring-profile.js:49)", "shortDescription": {"text": "Dangling fetch: POST /api/benchmark/scoring-profile/reset (benchmark/public/js/benchmark/scoring-profile.js:49)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark/scoring-profile.js:49` calls `POST /api/benchmark/scoring-profile/reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/scoring-profile/reset`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce38b2a84fcdd518", "name": "Dangling fetch: GET /api/benchmark/retention/stats (benchmark/public/js/benchmark-v2/data-management.js:36)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/retention/stats (benchmark/public/js/benchmark-v2/data-management.js:36)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark-v2/data-management.js:36` calls `GET /api/benchmark/retention/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/retention/stats`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b9cc551f9167cc8", "name": "Dangling fetch: POST /api/benchmark/retention/${path} (benchmark/public/js/benchmark-v2/data-management.js:43)", "shortDescription": {"text": "Dangling fetch: POST /api/benchmark/retention/${path} (benchmark/public/js/benchmark-v2/data-management.js:43)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark-v2/data-management.js:43` calls `POST /api/benchmark/retention/${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/retention/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b168702eb8d825e7", "name": "Dangling fetch: GET /api/profiler/hosts/${encodeURIComponent(h.hostId)}/status (benchmark/public/js/benchmark-v2/infrast", "shortDescription": {"text": "Dangling fetch: GET /api/profiler/hosts/${encodeURIComponent(h.hostId)}/status (benchmark/public/js/benchmark-v2/infrastructure.js:52)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark-v2/infrastructure.js:52` calls `GET /api/profiler/hosts/${encodeURIComponent(h.hostId)}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/profiler/hosts/<p>/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93fb5cf62ab82f97", "name": "Dangling fetch: POST /api/profiler/hosts/discover (benchmark/public/js/benchmark-v2/infrastructure.js:94)", "shortDescription": {"text": "Dangling fetch: POST /api/profiler/hosts/discover (benchmark/public/js/benchmark-v2/infrastructure.js:94)"}, "fullDescription": {"text": "`benchmark/public/js/benchmark-v2/infrastructure.js:94` calls `POST /api/profiler/hosts/discover` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/profiler/hosts/discover`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e63bdb2f51f1370", "name": "Dangling fetch: GET /api/setup/status (benchmark/public/js/setup/index.js:15)", "shortDescription": {"text": "Dangling fetch: GET /api/setup/status (benchmark/public/js/setup/index.js:15)"}, "fullDescription": {"text": "`benchmark/public/js/setup/index.js:15` calls `GET /api/setup/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/setup/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bba0559707e39b52", "name": "Dangling fetch: POST /api/setup/test-host (benchmark/public/js/setup/index.js:51)", "shortDescription": {"text": "Dangling fetch: POST /api/setup/test-host (benchmark/public/js/setup/index.js:51)"}, "fullDescription": {"text": "`benchmark/public/js/setup/index.js:51` calls `POST /api/setup/test-host` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/setup/test-host`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31c79a5df4b369cc", "name": "Dangling fetch: POST /api/setup/save (benchmark/public/js/setup/index.js:188)", "shortDescription": {"text": "Dangling fetch: POST /api/setup/save (benchmark/public/js/setup/index.js:188)"}, "fullDescription": {"text": "`benchmark/public/js/setup/index.js:188` calls `POST /api/setup/save` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/setup/save`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-152d82f72f7556e0", "name": "Dangling fetch: POST /api/benchmark/judge/matrix-calibrate (benchmark/public/js/courthouse-v2/calibration.js:234)", "shortDescription": {"text": "Dangling fetch: POST /api/benchmark/judge/matrix-calibrate (benchmark/public/js/courthouse-v2/calibration.js:234)"}, "fullDescription": {"text": "`benchmark/public/js/courthouse-v2/calibration.js:234` calls `POST /api/benchmark/judge/matrix-calibrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/judge/matrix-calibrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a9ef2a1f64f8aa9", "name": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/courthouse-v2/calibration.js:256)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/courthouse-v2/calibration.js:256)"}, "fullDescription": {"text": "`benchmark/public/js/courthouse-v2/calibration.js:256` calls `GET /api/benchmark/judge/calibration-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/judge/calibration-status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b48f2242cf875ca", "name": "Dangling fetch: GET /api/profiler/hosts/test/hosts-status (benchmark/public/js/courthouse-v2/calibration.js:295)", "shortDescription": {"text": "Dangling fetch: GET /api/profiler/hosts/test/hosts-status (benchmark/public/js/courthouse-v2/calibration.js:295)"}, "fullDescription": {"text": "`benchmark/public/js/courthouse-v2/calibration.js:295` calls `GET /api/profiler/hosts/test/hosts-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/profiler/hosts/test/hosts-status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9023a4422ec7d713", "name": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/courthouse-v2/index.js:222)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/courthouse-v2/index.js:222)"}, "fullDescription": {"text": "`benchmark/public/js/courthouse-v2/index.js:222` calls `GET /api/benchmark/judge/calibration-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/judge/calibration-status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a688a0424a2eb5e", "name": "Dangling fetch: GET /api/benchmark/judge/ground-truth/gaps (benchmark/public/js/courthouse-v2/index.js:236)", "shortDescription": {"text": "Dangling fetch: GET /api/benchmark/judge/ground-truth/gaps (benchmark/public/js/courthouse-v2/index.js:236)"}, "fullDescription": {"text": "`benchmark/public/js/courthouse-v2/index.js:236` calls `GET /api/benchmark/judge/ground-truth/gaps` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/benchmark/judge/ground-truth/gaps`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdd6414b380bd7e6", "name": "Dangling fetch: GET /api/cluster/schedule/live (core/public/js/models-unified.js:485)", "shortDescription": {"text": "Dangling fetch: GET /api/cluster/schedule/live (core/public/js/models-unified.js:485)"}, "fullDescription": {"text": "`core/public/js/models-unified.js:485` calls `GET /api/cluster/schedule/live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cluster/schedule/live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e61e4bcdd9dd04c9", "name": "Dangling fetch: GET /api/performance/dashboard?hours=${this.currentTimeRange} (core/public/js/performance-page.js:35)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/dashboard?hours=${this.currentTimeRange} (core/public/js/performance-page.js:35)"}, "fullDescription": {"text": "`core/public/js/performance-page.js:35` calls `GET /api/performance/dashboard?hours=${this.currentTimeRange}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/dashboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-323de0db87e091ba", "name": "Dangling fetch: GET /api/performance/dashboard?hours=${this.currentTimeRange} (core/public/js/performance-page.js:50)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/dashboard?hours=${this.currentTimeRange} (core/public/js/performance-page.js:50)"}, "fullDescription": {"text": "`core/public/js/performance-page.js:50` calls `GET /api/performance/dashboard?hours=${this.currentTimeRange}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/dashboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fcfbc3dd5a08d98", "name": "Dangling fetch: GET /api/performance/latency-trends?${params} (core/public/js/performance-page.js:335)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/latency-trends?${params} (core/public/js/performance-page.js:335)"}, "fullDescription": {"text": "`core/public/js/performance-page.js:335` calls `GET /api/performance/latency-trends?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/latency-trends`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6eb6e8ebaef8469", "name": "Dangling fetch: GET /api/performance/percentiles?${params} (core/public/js/performance-page.js:364)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/percentiles?${params} (core/public/js/performance-page.js:364)"}, "fullDescription": {"text": "`core/public/js/performance-page.js:364` calls `GET /api/performance/percentiles?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/percentiles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bb6b7369a474a73", "name": "Dangling fetch: GET /api/performance/throughput?${params} (core/public/js/performance-page.js:393)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/throughput?${params} (core/public/js/performance-page.js:393)"}, "fullDescription": {"text": "`core/public/js/performance-page.js:393` calls `GET /api/performance/throughput?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/throughput`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91c5096af650556b", "name": "Dangling fetch: GET /api/performance/endpoints (core/public/js/performance-page.js:415)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/endpoints (core/public/js/performance-page.js:415)"}, "fullDescription": {"text": "`core/public/js/performance-page.js:415` calls `GET /api/performance/endpoints` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/endpoints`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b31c996016abc84", "name": "Dangling fetch: POST /api/models/ollama/pull (core/public/js/models-management.js:54)", "shortDescription": {"text": "Dangling fetch: POST /api/models/ollama/pull (core/public/js/models-management.js:54)"}, "fullDescription": {"text": "`core/public/js/models-management.js:54` calls `POST /api/models/ollama/pull` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/ollama/pull`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2bda3211a1a72c3c", "name": "Dangling fetch: GET /api/models/registry/${encodeURIComponent(modelName)}/execution-config (core/public/js/models-execut", "shortDescription": {"text": "Dangling fetch: GET /api/models/registry/${encodeURIComponent(modelName)}/execution-config (core/public/js/models-execution-config.js:54)"}, "fullDescription": {"text": "`core/public/js/models-execution-config.js:54` calls `GET /api/models/registry/${encodeURIComponent(modelName)}/execution-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/registry/<p>/execution-config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17b01a0c7b825482", "name": "Dangling fetch: POST /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config (core/public/js/mode", "shortDescription": {"text": "Dangling fetch: POST /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config (core/public/js/models-execution-config.js:181)"}, "fullDescription": {"text": "`core/public/js/models-execution-config.js:181` calls `POST /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/registry/<p>/execution-config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92a44fb1745d2d2d", "name": "Dangling fetch: DELETE /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config (core/public/js/mo", "shortDescription": {"text": "Dangling fetch: DELETE /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config (core/public/js/models-execution-config.js:205)"}, "fullDescription": {"text": "`core/public/js/models-execution-config.js:205` calls `DELETE /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/registry/<p>/execution-config`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d24a778c589ed2a", "name": "Dangling fetch: POST /api/models/registry/sync-hosts (core/public/js/models-execution-config.js:230)", "shortDescription": {"text": "Dangling fetch: POST /api/models/registry/sync-hosts (core/public/js/models-execution-config.js:230)"}, "fullDescription": {"text": "`core/public/js/models-execution-config.js:230` calls `POST /api/models/registry/sync-hosts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/registry/sync-hosts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4bbfd15e98443fc0", "name": "Dangling fetch: POST /api/voix/transcribe (core/public/js/voice.js:401)", "shortDescription": {"text": "Dangling fetch: POST /api/voix/transcribe (core/public/js/voice.js:401)"}, "fullDescription": {"text": "`core/public/js/voice.js:401` calls `POST /api/voix/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voix/transcribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-508500f8f974b49c", "name": "Dangling fetch: POST /api/voix/synthesize (core/public/js/voice.js:553)", "shortDescription": {"text": "Dangling fetch: POST /api/voix/synthesize (core/public/js/voice.js:553)"}, "fullDescription": {"text": "`core/public/js/voice.js:553` calls `POST /api/voix/synthesize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voix/synthesize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e3c4a6fb22b7b3c", "name": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/buddy-page.js:210)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/buddy-page.js:210)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:210` calls `GET /api/buddy/personality-resolved` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/personality-resolved`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cede48da80ff1a0b", "name": "Dangling fetch: GET /api/buddy/facts (core/public/js/buddy-page.js:217)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/facts (core/public/js/buddy-page.js:217)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:217` calls `GET /api/buddy/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/facts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aa8f4c91e14bfd0", "name": "Dangling fetch: GET /api/buddy/source-health (core/public/js/buddy-page.js:229)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/source-health (core/public/js/buddy-page.js:229)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:229` calls `GET /api/buddy/source-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/source-health`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-140084d288309e7e", "name": "Dangling fetch: GET /api/buddy/singleton (core/public/js/buddy-page.js:272)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/singleton (core/public/js/buddy-page.js:272)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:272` calls `GET /api/buddy/singleton` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/singleton`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3140ef73a2529daa", "name": "Dangling fetch: POST /api/buddy/singleton (core/public/js/buddy-page.js:289)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/singleton (core/public/js/buddy-page.js:289)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:289` calls `POST /api/buddy/singleton` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/singleton`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-118e79eae48d0bbe", "name": "Dangling fetch: POST /api/buddy/chat (core/public/js/buddy-page.js:466)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/chat (core/public/js/buddy-page.js:466)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:466` calls `POST /api/buddy/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea0f4b746faef251", "name": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/buddy-page.js:639)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/buddy-page.js:639)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:639` calls `GET /api/buddy/personality-resolved` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/personality-resolved`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1404f87dd6d82cd7", "name": "Dangling fetch: POST /api/buddy/personality-preview (core/public/js/buddy-page.js:657)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/personality-preview (core/public/js/buddy-page.js:657)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:657` calls `POST /api/buddy/personality-preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/personality-preview`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fff92071628c55b3", "name": "Dangling fetch: GET /api/buddy/bootstrap-soul (core/public/js/buddy-page.js:695)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/bootstrap-soul (core/public/js/buddy-page.js:695)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:695` calls `GET /api/buddy/bootstrap-soul` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/bootstrap-soul`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6756c64324340bcd", "name": "Dangling fetch: GET /api/buddy/personality-sources (core/public/js/buddy-page.js:707)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/personality-sources (core/public/js/buddy-page.js:707)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:707` calls `GET /api/buddy/personality-sources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/personality-sources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6642a53333532197", "name": "Dangling fetch: GET /api/models/all (core/public/js/buddy-page.js:744)", "shortDescription": {"text": "Dangling fetch: GET /api/models/all (core/public/js/buddy-page.js:744)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:744` calls `GET /api/models/all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/all`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4cabc4874d3913b5", "name": "Dangling fetch: GET /api/buddy/facts?include=forgotten (core/public/js/buddy-page.js:1080)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/facts?include=forgotten (core/public/js/buddy-page.js:1080)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:1080` calls `GET /api/buddy/facts?include=forgotten` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/facts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea8cb9556f09ff16", "name": "Dangling fetch: POST /api/buddy/facts (core/public/js/buddy-page.js:1102)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/facts (core/public/js/buddy-page.js:1102)"}, "fullDescription": {"text": "`core/public/js/buddy-page.js:1102` calls `POST /api/buddy/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/facts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d12cbf8851285919", "name": "Dangling fetch: GET /api/performance/load-tests?limit=50 (core/public/js/performance-loadtests.js:7)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/load-tests?limit=50 (core/public/js/performance-loadtests.js:7)"}, "fullDescription": {"text": "`core/public/js/performance-loadtests.js:7` calls `GET /api/performance/load-tests?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/load-tests`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d22256f829b55734", "name": "Dangling fetch: POST /api/performance/load-tests (core/public/js/performance-loadtests.js:204)", "shortDescription": {"text": "Dangling fetch: POST /api/performance/load-tests (core/public/js/performance-loadtests.js:204)"}, "fullDescription": {"text": "`core/public/js/performance-loadtests.js:204` calls `POST /api/performance/load-tests` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/load-tests`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcb97c8df8f7390c", "name": "Dangling fetch: GET /api/performance/baselines (core/public/js/performance-baselines.js:7)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/baselines (core/public/js/performance-baselines.js:7)"}, "fullDescription": {"text": "`core/public/js/performance-baselines.js:7` calls `GET /api/performance/baselines` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/baselines`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87cbd0e0ae5149f6", "name": "Dangling fetch: GET /api/performance/baseline-compare?hours=${this.currentTimeRange} (core/public/js/performance-baselin", "shortDescription": {"text": "Dangling fetch: GET /api/performance/baseline-compare?hours=${this.currentTimeRange} (core/public/js/performance-baselines.js:83)"}, "fullDescription": {"text": "`core/public/js/performance-baselines.js:83` calls `GET /api/performance/baseline-compare?hours=${this.currentTimeRange}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/baseline-compare`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d8167d79ca5a452", "name": "Dangling fetch: GET /api/performance/load-tests?limit=10 (core/public/js/performance-baselines.js:178)", "shortDescription": {"text": "Dangling fetch: GET /api/performance/load-tests?limit=10 (core/public/js/performance-baselines.js:178)"}, "fullDescription": {"text": "`core/public/js/performance-baselines.js:178` calls `GET /api/performance/load-tests?limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/load-tests`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b14d9123fdf39445", "name": "Dangling fetch: POST /api/performance/baselines (core/public/js/performance-baselines.js:214)", "shortDescription": {"text": "Dangling fetch: POST /api/performance/baselines (core/public/js/performance-baselines.js:214)"}, "fullDescription": {"text": "`core/public/js/performance-baselines.js:214` calls `POST /api/performance/baselines` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/baselines`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-436356c47e06f678", "name": "Dangling fetch: POST /api/performance/baselines/${id}/activate (core/public/js/performance-baselines.js:247)", "shortDescription": {"text": "Dangling fetch: POST /api/performance/baselines/${id}/activate (core/public/js/performance-baselines.js:247)"}, "fullDescription": {"text": "`core/public/js/performance-baselines.js:247` calls `POST /api/performance/baselines/${id}/activate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/baselines/<p>/activate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-730231bb267f019c", "name": "Dangling fetch: DELETE /api/performance/baselines/${id} (core/public/js/performance-baselines.js:267)", "shortDescription": {"text": "Dangling fetch: DELETE /api/performance/baselines/${id} (core/public/js/performance-baselines.js:267)"}, "fullDescription": {"text": "`core/public/js/performance-baselines.js:267` calls `DELETE /api/performance/baselines/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/performance/baselines/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66f766363cf1cf34", "name": "Dangling fetch: GET /api/v1/geolocation (core/public/js/utils/api-utils.js:121)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/geolocation (core/public/js/utils/api-utils.js:121)"}, "fullDescription": {"text": "`core/public/js/utils/api-utils.js:121` calls `GET /api/v1/geolocation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/geolocation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca9464ee830e9db4", "name": "Dangling fetch: GET /api/openclaw/agents (core/public/js/components/AgentListView.js:316)", "shortDescription": {"text": "Dangling fetch: GET /api/openclaw/agents (core/public/js/components/AgentListView.js:316)"}, "fullDescription": {"text": "`core/public/js/components/AgentListView.js:316` calls `GET /api/openclaw/agents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/openclaw/agents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-356e6d3a776c9158", "name": "Dangling fetch: GET /api/nerve-center/intelligence (core/public/js/components/buddy-page-hooks.js:61)", "shortDescription": {"text": "Dangling fetch: GET /api/nerve-center/intelligence (core/public/js/components/buddy-page-hooks.js:61)"}, "fullDescription": {"text": "`core/public/js/components/buddy-page-hooks.js:61` calls `GET /api/nerve-center/intelligence` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/nerve-center/intelligence`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c703d24bb49822b", "name": "Dangling fetch: POST /api/buddy/react (core/public/js/components/buddy.js:220)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/react (core/public/js/components/buddy.js:220)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:220` calls `POST /api/buddy/react` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/react`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5696ca747156840", "name": "Dangling fetch: POST /api/buddy/event (core/public/js/components/buddy.js:299)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/event (core/public/js/components/buddy.js:299)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:299` calls `POST /api/buddy/event` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/event`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e37fe2d74fcc34c", "name": "Dangling fetch: POST /api/buddy/state (core/public/js/components/buddy.js:644)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/state (core/public/js/components/buddy.js:644)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:644` calls `POST /api/buddy/state` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/state`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6021f7e5de2c39f9", "name": "Dangling fetch: GET /api/buddy/singleton (core/public/js/components/buddy.js:685)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/singleton (core/public/js/components/buddy.js:685)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:685` calls `GET /api/buddy/singleton` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/singleton`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2689cefc37320cea", "name": "Dangling fetch: POST /api/buddy/react (core/public/js/components/buddy.js:879)", "shortDescription": {"text": "Dangling fetch: POST /api/buddy/react (core/public/js/components/buddy.js:879)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:879` calls `POST /api/buddy/react` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/react`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffcdc4b30c214353", "name": "Dangling fetch: GET /api/buddy/singleton (core/public/js/components/buddy.js:1091)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/singleton (core/public/js/components/buddy.js:1091)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:1091` calls `GET /api/buddy/singleton` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/singleton`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd594895184477d7", "name": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/components/buddy.js:1102)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/components/buddy.js:1102)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:1102` calls `GET /api/buddy/personality-resolved` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/personality-resolved`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea0796eec5f85c3b", "name": "Dangling fetch: GET /api/buddy/facts (core/public/js/components/buddy.js:1110)", "shortDescription": {"text": "Dangling fetch: GET /api/buddy/facts (core/public/js/components/buddy.js:1110)"}, "fullDescription": {"text": "`core/public/js/components/buddy.js:1110` calls `GET /api/buddy/facts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/buddy/facts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1e022d655989b5b", "name": "Dangling fetch: POST /api/voix/transcribe (core/public/js/chat/chat-voix.js:198)", "shortDescription": {"text": "Dangling fetch: POST /api/voix/transcribe (core/public/js/chat/chat-voix.js:198)"}, "fullDescription": {"text": "`core/public/js/chat/chat-voix.js:198` calls `POST /api/voix/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voix/transcribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b6f46d5fd49a587", "name": "Dangling fetch: POST /api/voix/synthesize (core/public/js/chat/chat-voix.js:211)", "shortDescription": {"text": "Dangling fetch: POST /api/voix/synthesize (core/public/js/chat/chat-voix.js:211)"}, "fullDescription": {"text": "`core/public/js/chat/chat-voix.js:211` calls `POST /api/voix/synthesize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voix/synthesize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-19e08730565091d6", "name": "Dangling fetch: GET /api/cluster/schedule/live (core/public/js/chat/chat-messaging.js:1110)", "shortDescription": {"text": "Dangling fetch: GET /api/cluster/schedule/live (core/public/js/chat/chat-messaging.js:1110)"}, "fullDescription": {"text": "`core/public/js/chat/chat-messaging.js:1110` calls `GET /api/cluster/schedule/live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cluster/schedule/live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b55957b904b364fb", "name": "Dangling fetch: GET /api/vector?scope=status (mc/src/components/search-modal.tsx:228)", "shortDescription": {"text": "Dangling fetch: GET /api/vector?scope=status (mc/src/components/search-modal.tsx:228)"}, "fullDescription": {"text": "`mc/src/components/search-modal.tsx:228` calls `GET /api/vector?scope=status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a42d4a85e41fa9b1", "name": "Dangling fetch: GET /api/sessions/raw?sessionId=${encodeURIComponent(sessionId)} (mc/src/components/sessions-view.tsx:19", "shortDescription": {"text": "Dangling fetch: GET /api/sessions/raw?sessionId=${encodeURIComponent(sessionId)} (mc/src/components/sessions-view.tsx:193)"}, "fullDescription": {"text": "`mc/src/components/sessions-view.tsx:193` calls `GET /api/sessions/raw?sessionId=${encodeURIComponent(sessionId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sessions/raw`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4fc5dd356633505", "name": "Dangling fetch: POST /api/usage/providers/${p.provider} (mc/src/components/usage-view.tsx:405)", "shortDescription": {"text": "Dangling fetch: POST /api/usage/providers/${p.provider} (mc/src/components/usage-view.tsx:405)"}, "fullDescription": {"text": "`mc/src/components/usage-view.tsx:405` calls `POST /api/usage/providers/${p.provider}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/usage/providers/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-218acba2b4085963", "name": "Dangling fetch: POST /api/skills/install (mc/src/components/skills-view.tsx:257)", "shortDescription": {"text": "Dangling fetch: POST /api/skills/install (mc/src/components/skills-view.tsx:257)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:257` calls `POST /api/skills/install` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/install`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-465705682177de02", "name": "Dangling fetch: POST /api/skills/test (mc/src/components/skills-view.tsx:488)", "shortDescription": {"text": "Dangling fetch: POST /api/skills/test (mc/src/components/skills-view.tsx:488)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:488` calls `POST /api/skills/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-349b3821904a7858", "name": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:728)", "shortDescription": {"text": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:728)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:728` calls `POST /api/skills` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-00d910a472351127", "name": "Dangling fetch: GET /api/skills/clawhub?action=list (mc/src/components/skills-view.tsx:1059)", "shortDescription": {"text": "Dangling fetch: GET /api/skills/clawhub?action=list (mc/src/components/skills-view.tsx:1059)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1059` calls `GET /api/skills/clawhub?action=list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/clawhub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bff2c58b4de811d", "name": "Dangling fetch: GET /api/skills/clawhub?action=explore&limit=28&sort=trending (mc/src/components/skills-view.tsx:1090)", "shortDescription": {"text": "Dangling fetch: GET /api/skills/clawhub?action=explore&limit=28&sort=trending (mc/src/components/skills-view.tsx:1090)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1090` calls `GET /api/skills/clawhub?action=explore&limit=28&sort=trending` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/clawhub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d7c033c8e92ce49", "name": "Dangling fetch: GET /api/skills/clawhub?action=search&q=${encodeURIComponent(q)}&limit=28 (mc/src/components/skills-view", "shortDescription": {"text": "Dangling fetch: GET /api/skills/clawhub?action=search&q=${encodeURIComponent(q)}&limit=28 (mc/src/components/skills-view.tsx:1140)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1140` calls `GET /api/skills/clawhub?action=search&q=${encodeURIComponent(q)}&limit=28` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/clawhub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9d8db23739a73cf", "name": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1184)", "shortDescription": {"text": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1184)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1184` calls `POST /api/skills/clawhub` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/clawhub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a60d128f15e2b979", "name": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1222)", "shortDescription": {"text": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1222)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1222` calls `POST /api/skills/clawhub` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/clawhub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cec5723635193c9", "name": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1252)", "shortDescription": {"text": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1252)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1252` calls `POST /api/skills/clawhub` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills/clawhub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8e6ea9135ed3e97", "name": "Dangling fetch: GET /api/skills (mc/src/components/skills-view.tsx:1482)", "shortDescription": {"text": "Dangling fetch: GET /api/skills (mc/src/components/skills-view.tsx:1482)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1482` calls `GET /api/skills` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-29e72db1e3fa9ffe", "name": "Dangling fetch: GET /api/skills?action=check (mc/src/components/skills-view.tsx:1483)", "shortDescription": {"text": "Dangling fetch: GET /api/skills?action=check (mc/src/components/skills-view.tsx:1483)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1483` calls `GET /api/skills?action=check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a834ecbe3f17bda8", "name": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:1573)", "shortDescription": {"text": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:1573)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1573` calls `POST /api/skills` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-adf01b79750b85ef", "name": "Dangling fetch: GET /api/skills (mc/src/components/skills-view.tsx:1596)", "shortDescription": {"text": "Dangling fetch: GET /api/skills (mc/src/components/skills-view.tsx:1596)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1596` calls `GET /api/skills` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b82aeafd9396c02c", "name": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:1601)", "shortDescription": {"text": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:1601)"}, "fullDescription": {"text": "`mc/src/components/skills-view.tsx:1601` calls `POST /api/skills` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c327dd429da0dfd", "name": "Dangling fetch: POST /api/gateway (mc/src/components/restart-announcement-bar.tsx:40)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/restart-announcement-bar.tsx:40)"}, "fullDescription": {"text": "`mc/src/components/restart-announcement-bar.tsx:40` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fc1962d53960c42", "name": "Dangling fetch: GET /api/agentx/cluster (mc/src/components/agentx-cluster-strip.tsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/agentx/cluster (mc/src/components/agentx-cluster-strip.tsx:40)"}, "fullDescription": {"text": "`mc/src/components/agentx-cluster-strip.tsx:40` calls `GET /api/agentx/cluster` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/agentx/cluster`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd6cae72f539ec77", "name": "Dangling fetch: POST /api/integrations (mc/src/components/integrations-view.tsx:381)", "shortDescription": {"text": "Dangling fetch: POST /api/integrations (mc/src/components/integrations-view.tsx:381)"}, "fullDescription": {"text": "`mc/src/components/integrations-view.tsx:381` calls `POST /api/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af33248527e29328", "name": "Dangling fetch: POST /api/integrations (mc/src/components/integrations-view.tsx:402)", "shortDescription": {"text": "Dangling fetch: POST /api/integrations (mc/src/components/integrations-view.tsx:402)"}, "fullDescription": {"text": "`mc/src/components/integrations-view.tsx:402` calls `POST /api/integrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e64fe1c2e3103c81", "name": "Dangling fetch: GET /api/onboard (mc/src/components/setup-gate.tsx:31)", "shortDescription": {"text": "Dangling fetch: GET /api/onboard (mc/src/components/setup-gate.tsx:31)"}, "fullDescription": {"text": "`mc/src/components/setup-gate.tsx:31` calls `GET /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4c18d95593ef910", "name": "Dangling fetch: GET /api/audio (mc/src/components/audio-view.tsx:1167)", "shortDescription": {"text": "Dangling fetch: GET /api/audio (mc/src/components/audio-view.tsx:1167)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1167` calls `GET /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09f8af4461d3dde4", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1209)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1209)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1209` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e4b48fac90d8583", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1252)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1252)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1252` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bc87bfe0c642b05", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1301)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1301)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1301` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-018be0631c8be57d", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1375)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1375)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1375` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f94b1a621e3d0197", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1410)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1410)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1410` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fa4c9f12e62c7a0", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1444)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1444)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1444` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f5366c787cad8c8", "name": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1473)", "shortDescription": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1473)"}, "fullDescription": {"text": "`mc/src/components/audio-view.tsx:1473` calls `POST /api/audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e4d54248cf9a8f5", "name": "Dangling fetch: GET /api/calendar?days=14 (mc/src/components/calendar-view.tsx:173)", "shortDescription": {"text": "Dangling fetch: GET /api/calendar?days=14 (mc/src/components/calendar-view.tsx:173)"}, "fullDescription": {"text": "`mc/src/components/calendar-view.tsx:173` calls `GET /api/calendar?days=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a43129d8cc6b840", "name": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:225)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:225)"}, "fullDescription": {"text": "`mc/src/components/calendar-view.tsx:225` calls `POST /api/calendar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d86c557f07837914", "name": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:252)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:252)"}, "fullDescription": {"text": "`mc/src/components/calendar-view.tsx:252` calls `POST /api/calendar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a7eeb9521c86717", "name": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:281)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:281)"}, "fullDescription": {"text": "`mc/src/components/calendar-view.tsx:281` calls `POST /api/calendar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbc04a657dc79d3f", "name": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:305)", "shortDescription": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:305)"}, "fullDescription": {"text": "`mc/src/components/calendar-view.tsx:305` calls `POST /api/calendar` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/calendar`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa548a7d13c4ea02", "name": "Dangling fetch: GET /api/live (mc/src/components/dashboard-view.tsx:861)", "shortDescription": {"text": "Dangling fetch: GET /api/live (mc/src/components/dashboard-view.tsx:861)"}, "fullDescription": {"text": "`mc/src/components/dashboard-view.tsx:861` calls `GET /api/live` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/live`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bc032fff81611a5", "name": "Dangling fetch: GET /api/system (mc/src/components/dashboard-view.tsx:882)", "shortDescription": {"text": "Dangling fetch: GET /api/system (mc/src/components/dashboard-view.tsx:882)"}, "fullDescription": {"text": "`mc/src/components/dashboard-view.tsx:882` calls `GET /api/system` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/system`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff4f49ecfbded05f", "name": "Dangling fetch: GET /api/pairing (mc/src/components/dashboard-view.tsx:886)", "shortDescription": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/dashboard-view.tsx:886)"}, "fullDescription": {"text": "`mc/src/components/dashboard-view.tsx:886` calls `GET /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ed8fee5b117f73d", "name": "Dangling fetch: GET /api/runtime/diagnostics (mc/src/components/dashboard-view.tsx:890)", "shortDescription": {"text": "Dangling fetch: GET /api/runtime/diagnostics (mc/src/components/dashboard-view.tsx:890)"}, "fullDescription": {"text": "`mc/src/components/dashboard-view.tsx:890` calls `GET /api/runtime/diagnostics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/runtime/diagnostics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27614e65f2e8fa6b", "name": "Dangling fetch: GET /api/mission-control-update (mc/src/components/mission-control-update-banner.tsx:47)", "shortDescription": {"text": "Dangling fetch: GET /api/mission-control-update (mc/src/components/mission-control-update-banner.tsx:47)"}, "fullDescription": {"text": "`mc/src/components/mission-control-update-banner.tsx:47` calls `GET /api/mission-control-update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mission-control-update`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86c1d6824f405c82", "name": "Dangling fetch: POST /api/mission-control-update (mc/src/components/mission-control-update-banner.tsx:88)", "shortDescription": {"text": "Dangling fetch: POST /api/mission-control-update (mc/src/components/mission-control-update-banner.tsx:88)"}, "fullDescription": {"text": "`mc/src/components/mission-control-update-banner.tsx:88` calls `POST /api/mission-control-update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mission-control-update`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-076449ebe220110f", "name": "Dangling fetch: GET /api/security (mc/src/components/security-view.tsx:438)", "shortDescription": {"text": "Dangling fetch: GET /api/security (mc/src/components/security-view.tsx:438)"}, "fullDescription": {"text": "`mc/src/components/security-view.tsx:438` calls `GET /api/security` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/security`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d563b0adf72e294", "name": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:553)", "shortDescription": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:553)"}, "fullDescription": {"text": "`mc/src/components/security-view.tsx:553` calls `POST /api/security` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/security`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65d62c948d011d7e", "name": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:591)", "shortDescription": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:591)"}, "fullDescription": {"text": "`mc/src/components/security-view.tsx:591` calls `POST /api/security` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/security`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44b1111d50f76040", "name": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:633)", "shortDescription": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:633)"}, "fullDescription": {"text": "`mc/src/components/security-view.tsx:633` calls `POST /api/security` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/security`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1f44b1691758d9a", "name": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:651)", "shortDescription": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:651)"}, "fullDescription": {"text": "`mc/src/components/security-view.tsx:651` calls `POST /api/security` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/security`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-449c6f597543c331", "name": "Dangling fetch: GET /api/hooks (mc/src/components/hooks-view.tsx:400)", "shortDescription": {"text": "Dangling fetch: GET /api/hooks (mc/src/components/hooks-view.tsx:400)"}, "fullDescription": {"text": "`mc/src/components/hooks-view.tsx:400` calls `GET /api/hooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff06061bc2a20a78", "name": "Dangling fetch: GET /api/hooks?action=info&name=${encodeURIComponent(name)} (mc/src/components/hooks-view.tsx:419)", "shortDescription": {"text": "Dangling fetch: GET /api/hooks?action=info&name=${encodeURIComponent(name)} (mc/src/components/hooks-view.tsx:419)"}, "fullDescription": {"text": "`mc/src/components/hooks-view.tsx:419` calls `GET /api/hooks?action=info&name=${encodeURIComponent(name)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d619ab5f53d270f", "name": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:449)", "shortDescription": {"text": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:449)"}, "fullDescription": {"text": "`mc/src/components/hooks-view.tsx:449` calls `POST /api/hooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3752c0d62d08013", "name": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:475)", "shortDescription": {"text": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:475)"}, "fullDescription": {"text": "`mc/src/components/hooks-view.tsx:475` calls `POST /api/hooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a2608263c35de7b", "name": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:498)", "shortDescription": {"text": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:498)"}, "fullDescription": {"text": "`mc/src/components/hooks-view.tsx:498` calls `POST /api/hooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/hooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a00ac7e8b4315d5", "name": "Dangling fetch: GET /api/openclaw-update (mc/src/components/openclaw-update-banner.tsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/openclaw-update (mc/src/components/openclaw-update-banner.tsx:37)"}, "fullDescription": {"text": "`mc/src/components/openclaw-update-banner.tsx:37` calls `GET /api/openclaw-update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/openclaw-update`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc56110d9c28d6ca", "name": "Dangling fetch: POST /api/openclaw-update (mc/src/components/openclaw-update-banner.tsx:77)", "shortDescription": {"text": "Dangling fetch: POST /api/openclaw-update (mc/src/components/openclaw-update-banner.tsx:77)"}, "fullDescription": {"text": "`mc/src/components/openclaw-update-banner.tsx:77` calls `POST /api/openclaw-update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/openclaw-update`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72d68a8075fc16f2", "name": "Dangling fetch: GET /api/pairing (mc/src/components/channels-view.tsx:201)", "shortDescription": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/channels-view.tsx:201)"}, "fullDescription": {"text": "`mc/src/components/channels-view.tsx:201` calls `GET /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66da778042912f39", "name": "Dangling fetch: POST /api/onboard (mc/src/components/channels-view.tsx:299)", "shortDescription": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/channels-view.tsx:299)"}, "fullDescription": {"text": "`mc/src/components/channels-view.tsx:299` calls `POST /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ccf0b86423131ca", "name": "Dangling fetch: POST /api/pairing (mc/src/components/channels-view.tsx:404)", "shortDescription": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/channels-view.tsx:404)"}, "fullDescription": {"text": "`mc/src/components/channels-view.tsx:404` calls `POST /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce0be8556492b61b", "name": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:122)", "shortDescription": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:122)"}, "fullDescription": {"text": "`mc/src/components/terminal-view.tsx:122` calls `POST /api/terminal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/terminal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d90f8a23d24c88d", "name": "Dangling fetch: GET /api/terminal?action=stream&session=${sessionId} (mc/src/components/terminal-view.tsx:145)", "shortDescription": {"text": "Dangling fetch: GET /api/terminal?action=stream&session=${sessionId} (mc/src/components/terminal-view.tsx:145)"}, "fullDescription": {"text": "`mc/src/components/terminal-view.tsx:145` calls `GET /api/terminal?action=stream&session=${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/terminal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3db4312ff3a42a3", "name": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:191)", "shortDescription": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:191)"}, "fullDescription": {"text": "`mc/src/components/terminal-view.tsx:191` calls `POST /api/terminal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/terminal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9cd11c4aa3eea1db", "name": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:285)", "shortDescription": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:285)"}, "fullDescription": {"text": "`mc/src/components/terminal-view.tsx:285` calls `POST /api/terminal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/terminal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c3226438149eb06", "name": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:316)", "shortDescription": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:316)"}, "fullDescription": {"text": "`mc/src/components/terminal-view.tsx:316` calls `POST /api/terminal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/terminal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38aee194cbc81e6b", "name": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:337)", "shortDescription": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:337)"}, "fullDescription": {"text": "`mc/src/components/terminal-view.tsx:337` calls `POST /api/terminal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/terminal`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73751b88d239530c", "name": "Dangling fetch: POST /api/memory/graph (mc/src/components/memory-graph-view.tsx:1577)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/graph (mc/src/components/memory-graph-view.tsx:1577)"}, "fullDescription": {"text": "`mc/src/components/memory-graph-view.tsx:1577` calls `POST /api/memory/graph` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/graph`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4e5ccd51c2eb2e2", "name": "Dangling fetch: POST /api/memory/graph (mc/src/components/memory-graph-view.tsx:1598)", "shortDescription": {"text": "Dangling fetch: POST /api/memory/graph (mc/src/components/memory-graph-view.tsx:1598)"}, "fullDescription": {"text": "`mc/src/components/memory-graph-view.tsx:1598` calls `POST /api/memory/graph` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory/graph`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf02950b63f18bfc", "name": "Dangling fetch: GET /api/secrets (mc/src/components/accounts-keys-view.tsx:309)", "shortDescription": {"text": "Dangling fetch: GET /api/secrets (mc/src/components/accounts-keys-view.tsx:309)"}, "fullDescription": {"text": "`mc/src/components/accounts-keys-view.tsx:309` calls `GET /api/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/secrets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a4f7b7413250ac3", "name": "Dangling fetch: POST /api/secrets (mc/src/components/accounts-keys-view.tsx:329)", "shortDescription": {"text": "Dangling fetch: POST /api/secrets (mc/src/components/accounts-keys-view.tsx:329)"}, "fullDescription": {"text": "`mc/src/components/accounts-keys-view.tsx:329` calls `POST /api/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/secrets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85803c1dea63c70a", "name": "Dangling fetch: POST /api/secrets (mc/src/components/accounts-keys-view.tsx:357)", "shortDescription": {"text": "Dangling fetch: POST /api/secrets (mc/src/components/accounts-keys-view.tsx:357)"}, "fullDescription": {"text": "`mc/src/components/accounts-keys-view.tsx:357` calls `POST /api/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/secrets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c4c182f22c1c3a1", "name": "Dangling fetch: GET /api/accounts (mc/src/components/accounts-keys-view.tsx:638)", "shortDescription": {"text": "Dangling fetch: GET /api/accounts (mc/src/components/accounts-keys-view.tsx:638)"}, "fullDescription": {"text": "`mc/src/components/accounts-keys-view.tsx:638` calls `GET /api/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4d780bb3dd44e6f", "name": "Dangling fetch: POST /api/accounts (mc/src/components/accounts-keys-view.tsx:755)", "shortDescription": {"text": "Dangling fetch: POST /api/accounts (mc/src/components/accounts-keys-view.tsx:755)"}, "fullDescription": {"text": "`mc/src/components/accounts-keys-view.tsx:755` calls `POST /api/accounts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/accounts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68e15ed5a104d8f7", "name": "Dangling fetch: POST /api/gateway (mc/src/components/header.tsx:426)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/header.tsx:426)"}, "fullDescription": {"text": "`mc/src/components/header.tsx:426` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ab92a0ffe122799", "name": "Dangling fetch: POST /api/gateway (mc/src/components/header.tsx:433)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/header.tsx:433)"}, "fullDescription": {"text": "`mc/src/components/header.tsx:433` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d2cfcc1a542dc80f", "name": "Dangling fetch: GET /api/pairing (mc/src/components/notification-center.tsx:143)", "shortDescription": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/notification-center.tsx:143)"}, "fullDescription": {"text": "`mc/src/components/notification-center.tsx:143` calls `GET /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b743cee242bfcb44", "name": "Dangling fetch: GET /api/usage/alerts?poll=1 (mc/src/components/notification-center.tsx:145)", "shortDescription": {"text": "Dangling fetch: GET /api/usage/alerts?poll=1 (mc/src/components/notification-center.tsx:145)"}, "fullDescription": {"text": "`mc/src/components/notification-center.tsx:145` calls `GET /api/usage/alerts?poll=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/usage/alerts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-655c523c4cd1ce42", "name": "Dangling fetch: GET /api/browser/relay${qs} (mc/src/components/browser-relay-view.tsx:308)", "shortDescription": {"text": "Dangling fetch: GET /api/browser/relay${qs} (mc/src/components/browser-relay-view.tsx:308)"}, "fullDescription": {"text": "`mc/src/components/browser-relay-view.tsx:308` calls `GET /api/browser/relay${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/browser/relay/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b8446681a61a965", "name": "Dangling fetch: POST /api/browser/relay (mc/src/components/browser-relay-view.tsx:353)", "shortDescription": {"text": "Dangling fetch: POST /api/browser/relay (mc/src/components/browser-relay-view.tsx:353)"}, "fullDescription": {"text": "`mc/src/components/browser-relay-view.tsx:353` calls `POST /api/browser/relay` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/browser/relay`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8669fc938f0dda63", "name": "Dangling fetch: POST /api/browser/relay (mc/src/components/browser-relay-view.tsx:412)", "shortDescription": {"text": "Dangling fetch: POST /api/browser/relay (mc/src/components/browser-relay-view.tsx:412)"}, "fullDescription": {"text": "`mc/src/components/browser-relay-view.tsx:412` calls `POST /api/browser/relay` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/browser/relay`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94110d702f252073", "name": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:283)", "shortDescription": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:283)"}, "fullDescription": {"text": "`mc/src/components/onboarding-wizard.tsx:283` calls `POST /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba7d20faae33c177", "name": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:296)", "shortDescription": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:296)"}, "fullDescription": {"text": "`mc/src/components/onboarding-wizard.tsx:296` calls `POST /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-896075e14e5b8067", "name": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:425)", "shortDescription": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:425)"}, "fullDescription": {"text": "`mc/src/components/onboarding-wizard.tsx:425` calls `POST /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdca87de2d23c8d4", "name": "Dangling fetch: GET /api/pairing?_=${Date.now()} (mc/src/components/onboarding-wizard.tsx:478)", "shortDescription": {"text": "Dangling fetch: GET /api/pairing?_=${Date.now()} (mc/src/components/onboarding-wizard.tsx:478)"}, "fullDescription": {"text": "`mc/src/components/onboarding-wizard.tsx:478` calls `GET /api/pairing?_=${Date.now()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d91d23159db600d", "name": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:510)", "shortDescription": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:510)"}, "fullDescription": {"text": "`mc/src/components/onboarding-wizard.tsx:510` calls `POST /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5010aa65098bf822", "name": "Dangling fetch: POST /api/pairing (mc/src/components/onboarding-wizard.tsx:530)", "shortDescription": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/onboarding-wizard.tsx:530)"}, "fullDescription": {"text": "`mc/src/components/onboarding-wizard.tsx:530` calls `POST /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e77bbbf4b74f5df1", "name": "Dangling fetch: POST /api/web-search (mc/src/components/web-search-view.tsx:218)", "shortDescription": {"text": "Dangling fetch: POST /api/web-search (mc/src/components/web-search-view.tsx:218)"}, "fullDescription": {"text": "`mc/src/components/web-search-view.tsx:218` calls `POST /api/web-search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/web-search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9ed4d03aad8cca2", "name": "Dangling fetch: GET /api/web-search (mc/src/components/web-search-view.tsx:392)", "shortDescription": {"text": "Dangling fetch: GET /api/web-search (mc/src/components/web-search-view.tsx:392)"}, "fullDescription": {"text": "`mc/src/components/web-search-view.tsx:392` calls `GET /api/web-search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/web-search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f2ba0453195988d", "name": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:410)", "shortDescription": {"text": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:410)"}, "fullDescription": {"text": "`mc/src/components/web-search-view.tsx:410` calls `PATCH /api/web-search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/web-search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-619a63e8c49962cb", "name": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:432)", "shortDescription": {"text": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:432)"}, "fullDescription": {"text": "`mc/src/components/web-search-view.tsx:432` calls `PATCH /api/web-search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/web-search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90dd416cd5d71efc", "name": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:465)", "shortDescription": {"text": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:465)"}, "fullDescription": {"text": "`mc/src/components/web-search-view.tsx:465` calls `PATCH /api/web-search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/web-search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c71b1f76457f67f", "name": "Dangling fetch: GET /api/vector?scope=documents (mc/src/components/vector-view.tsx:533)", "shortDescription": {"text": "Dangling fetch: GET /api/vector?scope=documents (mc/src/components/vector-view.tsx:533)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:533` calls `GET /api/vector?scope=documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4c4e654c27cbfb1", "name": "Dangling fetch: GET /api/vector?scope=status (mc/src/components/vector-view.tsx:547)", "shortDescription": {"text": "Dangling fetch: GET /api/vector?scope=status (mc/src/components/vector-view.tsx:547)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:547` calls `GET /api/vector?scope=status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a46fd9be588cbe4", "name": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:603)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:603)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:603` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c04a8f532c66f2a", "name": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:616)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:616)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:616` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39f8608d82d74490", "name": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:643)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:643)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:643` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a9902327c8a1cd7", "name": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:666)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:666)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:666` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0aa7550d0bd431e6", "name": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:722)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:722)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:722` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cefb6b39fbb794ae", "name": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:749)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:749)"}, "fullDescription": {"text": "`mc/src/components/vector-view.tsx:749` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a0948682df24364", "name": "Dangling fetch: GET /api/integrations?agentId=${encodeURIComponent(agentId)} (mc/src/components/agents-view.tsx:1222)", "shortDescription": {"text": "Dangling fetch: GET /api/integrations?agentId=${encodeURIComponent(agentId)} (mc/src/components/agents-view.tsx:1222)"}, "fullDescription": {"text": "`mc/src/components/agents-view.tsx:1222` calls `GET /api/integrations?agentId=${encodeURIComponent(agentId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/integrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2a8795b2e72ef1c", "name": "Dangling fetch: GET /api/skills (mc/src/components/agents-view.tsx:3227)", "shortDescription": {"text": "Dangling fetch: GET /api/skills (mc/src/components/agents-view.tsx:3227)"}, "fullDescription": {"text": "`mc/src/components/agents-view.tsx:3227` calls `GET /api/skills` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skills`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e20b42df27d3fbd5", "name": "Dangling fetch: GET /api/workspace/files?path=${encodeURIComponent(workspacePath)} (mc/src/components/agents-view.tsx:41", "shortDescription": {"text": "Dangling fetch: GET /api/workspace/files?path=${encodeURIComponent(workspacePath)} (mc/src/components/agents-view.tsx:4188)"}, "fullDescription": {"text": "`mc/src/components/agents-view.tsx:4188` calls `GET /api/workspace/files?path=${encodeURIComponent(workspacePath)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/workspace/files`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62dd4a65f52f86d2", "name": "Dangling fetch: GET /api/onboard (mc/src/components/settings-view.tsx:192)", "shortDescription": {"text": "Dangling fetch: GET /api/onboard (mc/src/components/settings-view.tsx:192)"}, "fullDescription": {"text": "`mc/src/components/settings-view.tsx:192` calls `GET /api/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/onboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e853bb3c048c8bfa", "name": "Dangling fetch: GET /api/system (mc/src/components/settings-view.tsx:193)", "shortDescription": {"text": "Dangling fetch: GET /api/system (mc/src/components/settings-view.tsx:193)"}, "fullDescription": {"text": "`mc/src/components/settings-view.tsx:193` calls `GET /api/system` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/system`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c0a27c2008fa9fa", "name": "Dangling fetch: POST /api/gateway (mc/src/components/settings-view.tsx:283)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/settings-view.tsx:283)"}, "fullDescription": {"text": "`mc/src/components/settings-view.tsx:283` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-161909d9567b4d1b", "name": "Dangling fetch: GET /api/doctor/status (mc/src/components/doctor-view.tsx:775)", "shortDescription": {"text": "Dangling fetch: GET /api/doctor/status (mc/src/components/doctor-view.tsx:775)"}, "fullDescription": {"text": "`mc/src/components/doctor-view.tsx:775` calls `GET /api/doctor/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/doctor/status`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78080d93c6cff49a", "name": "Dangling fetch: GET /api/doctor/history?limit=${limit} (mc/src/components/doctor-view.tsx:789)", "shortDescription": {"text": "Dangling fetch: GET /api/doctor/history?limit=${limit} (mc/src/components/doctor-view.tsx:789)"}, "fullDescription": {"text": "`mc/src/components/doctor-view.tsx:789` calls `GET /api/doctor/history?limit=${limit}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/doctor/history`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13db5c6e39d817b5", "name": "Dangling fetch: POST /api/gateway (mc/src/components/doctor-view.tsx:818)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/doctor-view.tsx:818)"}, "fullDescription": {"text": "`mc/src/components/doctor-view.tsx:818` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd4543f40ded1ee4", "name": "Dangling fetch: POST /api/doctor/run (mc/src/components/doctor-view.tsx:846)", "shortDescription": {"text": "Dangling fetch: POST /api/doctor/run (mc/src/components/doctor-view.tsx:846)"}, "fullDescription": {"text": "`mc/src/components/doctor-view.tsx:846` calls `POST /api/doctor/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/doctor/run`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6fc76642afffbab6", "name": "Dangling fetch: GET /api/chat/bootstrap (mc/src/components/chat-view.tsx:1215)", "shortDescription": {"text": "Dangling fetch: GET /api/chat/bootstrap (mc/src/components/chat-view.tsx:1215)"}, "fullDescription": {"text": "`mc/src/components/chat-view.tsx:1215` calls `GET /api/chat/bootstrap` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/chat/bootstrap`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e4f3df3e6ba81b7", "name": "Dangling fetch: GET /api/docs (mc/src/components/docs-view.tsx:430)", "shortDescription": {"text": "Dangling fetch: GET /api/docs (mc/src/components/docs-view.tsx:430)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:430` calls `GET /api/docs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0046a0e7b130bab4", "name": "Dangling fetch: GET /api/docs?path=${encodeURIComponent(target.path)} (mc/src/components/docs-view.tsx:448)", "shortDescription": {"text": "Dangling fetch: GET /api/docs?path=${encodeURIComponent(target.path)} (mc/src/components/docs-view.tsx:448)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:448` calls `GET /api/docs?path=${encodeURIComponent(target.path)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5461ac2b7269375a", "name": "Dangling fetch: PUT /api/docs (mc/src/components/docs-view.tsx:538)", "shortDescription": {"text": "Dangling fetch: PUT /api/docs (mc/src/components/docs-view.tsx:538)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:538` calls `PUT /api/docs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0bc3b751bb9f730", "name": "Dangling fetch: GET /api/docs?path=${encodeURIComponent(doc.path)} (mc/src/components/docs-view.tsx:591)", "shortDescription": {"text": "Dangling fetch: GET /api/docs?path=${encodeURIComponent(doc.path)} (mc/src/components/docs-view.tsx:591)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:591` calls `GET /api/docs?path=${encodeURIComponent(doc.path)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a51d135fd7e36560", "name": "Dangling fetch: DELETE /api/docs?path=${encodeURIComponent(doc.path)} (mc/src/components/docs-view.tsx:614)", "shortDescription": {"text": "Dangling fetch: DELETE /api/docs?path=${encodeURIComponent(doc.path)} (mc/src/components/docs-view.tsx:614)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:614` calls `DELETE /api/docs?path=${encodeURIComponent(doc.path)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0f6e5dd03e74de2", "name": "Dangling fetch: PATCH /api/docs (mc/src/components/docs-view.tsx:645)", "shortDescription": {"text": "Dangling fetch: PATCH /api/docs (mc/src/components/docs-view.tsx:645)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:645` calls `PATCH /api/docs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4dec8081c14e99a", "name": "Dangling fetch: PATCH /api/docs (mc/src/components/docs-view.tsx:679)", "shortDescription": {"text": "Dangling fetch: PATCH /api/docs (mc/src/components/docs-view.tsx:679)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:679` calls `PATCH /api/docs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-306623d55c5281ed", "name": "Dangling fetch: POST /api/docs (mc/src/components/docs-view.tsx:708)", "shortDescription": {"text": "Dangling fetch: POST /api/docs (mc/src/components/docs-view.tsx:708)"}, "fullDescription": {"text": "`mc/src/components/docs-view.tsx:708` calls `POST /api/docs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-147dfde96af18abf", "name": "Dangling fetch: PUT /api/memory (mc/src/components/memory-view.tsx:289)", "shortDescription": {"text": "Dangling fetch: PUT /api/memory (mc/src/components/memory-view.tsx:289)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:289` calls `PUT /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-044595210da93c7c", "name": "Dangling fetch: GET /api/memory?file=${encodeURIComponent(file)} (mc/src/components/memory-view.tsx:388)", "shortDescription": {"text": "Dangling fetch: GET /api/memory?file=${encodeURIComponent(file)} (mc/src/components/memory-view.tsx:388)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:388` calls `GET /api/memory?file=${encodeURIComponent(file)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10740879501b7016", "name": "Dangling fetch: GET /api/memory?agentMemory=${encodeURIComponent(entry.agentId)} (mc/src/components/memory-view.tsx:419)", "shortDescription": {"text": "Dangling fetch: GET /api/memory?agentMemory=${encodeURIComponent(entry.agentId)} (mc/src/components/memory-view.tsx:419)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:419` calls `GET /api/memory?agentMemory=${encodeURIComponent(entry.agentId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ea2c48a67482a40", "name": "Dangling fetch: GET /api/memory (mc/src/components/memory-view.tsx:455)", "shortDescription": {"text": "Dangling fetch: GET /api/memory (mc/src/components/memory-view.tsx:455)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:455` calls `GET /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12f2b2f8f174a192", "name": "Dangling fetch: DELETE /api/memory?file=${encodeURIComponent(entry.name)} (mc/src/components/memory-view.tsx:496)", "shortDescription": {"text": "Dangling fetch: DELETE /api/memory?file=${encodeURIComponent(entry.name)} (mc/src/components/memory-view.tsx:496)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:496` calls `DELETE /api/memory?file=${encodeURIComponent(entry.name)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e713662a1cfcea9", "name": "Dangling fetch: PATCH /api/memory (mc/src/components/memory-view.tsx:532)", "shortDescription": {"text": "Dangling fetch: PATCH /api/memory (mc/src/components/memory-view.tsx:532)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:532` calls `PATCH /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca8e9e5577b5ba50", "name": "Dangling fetch: PATCH /api/memory (mc/src/components/memory-view.tsx:567)", "shortDescription": {"text": "Dangling fetch: PATCH /api/memory (mc/src/components/memory-view.tsx:567)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:567` calls `PATCH /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6298dc8a7f9bd77", "name": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:598)", "shortDescription": {"text": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:598)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:598` calls `POST /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8934e792a2579c4b", "name": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:626)", "shortDescription": {"text": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:626)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:626` calls `POST /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23cec8614fd48937", "name": "Dangling fetch: GET /api/memory?file=${encodeURIComponent(file.name)}&workspaceRoot=1 (mc/src/components/memory-view.tsx", "shortDescription": {"text": "Dangling fetch: GET /api/memory?file=${encodeURIComponent(file.name)}&workspaceRoot=1 (mc/src/components/memory-view.tsx:657)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:657` calls `GET /api/memory?file=${encodeURIComponent(file.name)}&workspaceRoot=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1409f766a2bb7dcc", "name": "Dangling fetch: POST /api/vector (mc/src/components/memory-view.tsx:691)", "shortDescription": {"text": "Dangling fetch: POST /api/vector (mc/src/components/memory-view.tsx:691)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:691` calls `POST /api/vector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d447a7a2f62611b", "name": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:715)", "shortDescription": {"text": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:715)"}, "fullDescription": {"text": "`mc/src/components/memory-view.tsx:715` calls `POST /api/memory` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/memory`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-919692ad81c58d4d", "name": "Dangling fetch: GET /api/ollama/hotstate (mc/src/components/models-view.tsx:246)", "shortDescription": {"text": "Dangling fetch: GET /api/ollama/hotstate (mc/src/components/models-view.tsx:246)"}, "fullDescription": {"text": "`mc/src/components/models-view.tsx:246` calls `GET /api/ollama/hotstate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ollama/hotstate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e5a44f0ddbe5bac", "name": "Dangling fetch: GET /api/models/summary (mc/src/components/models-view.tsx:1667)", "shortDescription": {"text": "Dangling fetch: GET /api/models/summary (mc/src/components/models-view.tsx:1667)"}, "fullDescription": {"text": "`mc/src/components/models-view.tsx:1667` calls `GET /api/models/summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/summary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62bf7de381758b81", "name": "Dangling fetch: POST /api/subagents (mc/src/components/subagents-manager-view.tsx:358)", "shortDescription": {"text": "Dangling fetch: POST /api/subagents (mc/src/components/subagents-manager-view.tsx:358)"}, "fullDescription": {"text": "`mc/src/components/subagents-manager-view.tsx:358` calls `POST /api/subagents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/subagents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2dc2fc879d375470", "name": "Dangling fetch: POST /api/subagents (mc/src/components/subagents-manager-view.tsx:406)", "shortDescription": {"text": "Dangling fetch: POST /api/subagents (mc/src/components/subagents-manager-view.tsx:406)"}, "fullDescription": {"text": "`mc/src/components/subagents-manager-view.tsx:406` calls `POST /api/subagents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/subagents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92abc66b93c37170", "name": "Dangling fetch: GET /api/gateway (mc/src/components/tailscale-view.tsx:86)", "shortDescription": {"text": "Dangling fetch: GET /api/gateway (mc/src/components/tailscale-view.tsx:86)"}, "fullDescription": {"text": "`mc/src/components/tailscale-view.tsx:86` calls `GET /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bac7ffe098fc3f2c", "name": "Dangling fetch: GET /api/tailscale (mc/src/components/tailscale-view.tsx:87)", "shortDescription": {"text": "Dangling fetch: GET /api/tailscale (mc/src/components/tailscale-view.tsx:87)"}, "fullDescription": {"text": "`mc/src/components/tailscale-view.tsx:87` calls `GET /api/tailscale` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tailscale`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66382e5d85fed46f", "name": "Dangling fetch: POST /api/gateway (mc/src/components/tailscale-view.tsx:140)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/tailscale-view.tsx:140)"}, "fullDescription": {"text": "`mc/src/components/tailscale-view.tsx:140` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34daafa1401a6f6f", "name": "Dangling fetch: POST /api/tailscale (mc/src/components/tailscale-view.tsx:214)", "shortDescription": {"text": "Dangling fetch: POST /api/tailscale (mc/src/components/tailscale-view.tsx:214)"}, "fullDescription": {"text": "`mc/src/components/tailscale-view.tsx:214` calls `POST /api/tailscale` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tailscale`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8670167c1810ae51", "name": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:115)", "shortDescription": {"text": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:115)"}, "fullDescription": {"text": "`mc/src/components/tasks-view.tsx:115` calls `GET /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dcc68d9da45943eb", "name": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:150)", "shortDescription": {"text": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:150)"}, "fullDescription": {"text": "`mc/src/components/tasks-view.tsx:150` calls `GET /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74699da0584e0870", "name": "Dangling fetch: PUT /api/tasks (mc/src/components/tasks-view.tsx:175)", "shortDescription": {"text": "Dangling fetch: PUT /api/tasks (mc/src/components/tasks-view.tsx:175)"}, "fullDescription": {"text": "`mc/src/components/tasks-view.tsx:175` calls `PUT /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4999c89eae21e8a", "name": "Dangling fetch: POST /api/tasks (mc/src/components/tasks-view.tsx:262)", "shortDescription": {"text": "Dangling fetch: POST /api/tasks (mc/src/components/tasks-view.tsx:262)"}, "fullDescription": {"text": "`mc/src/components/tasks-view.tsx:262` calls `POST /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ac7915c24532e5d", "name": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:269)", "shortDescription": {"text": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:269)"}, "fullDescription": {"text": "`mc/src/components/tasks-view.tsx:269` calls `GET /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c297b0fd401aa9f", "name": "Dangling fetch: POST /api/tasks (mc/src/components/tasks-view.tsx:1174)", "shortDescription": {"text": "Dangling fetch: POST /api/tasks (mc/src/components/tasks-view.tsx:1174)"}, "fullDescription": {"text": "`mc/src/components/tasks-view.tsx:1174` calls `POST /api/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72798b12fab8e964", "name": "Dangling fetch: GET /api/pairing (mc/src/components/pairing-notifications.tsx:286)", "shortDescription": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/pairing-notifications.tsx:286)"}, "fullDescription": {"text": "`mc/src/components/pairing-notifications.tsx:286` calls `GET /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37de44a08045415b", "name": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:335)", "shortDescription": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:335)"}, "fullDescription": {"text": "`mc/src/components/pairing-notifications.tsx:335` calls `POST /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3715d4159a3bc679", "name": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:360)", "shortDescription": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:360)"}, "fullDescription": {"text": "`mc/src/components/pairing-notifications.tsx:360` calls `POST /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7346eec6426f9860", "name": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:385)", "shortDescription": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:385)"}, "fullDescription": {"text": "`mc/src/components/pairing-notifications.tsx:385` calls `POST /api/pairing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pairing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ec5bba62beb56ea", "name": "Dangling fetch: GET /api/heartbeat (mc/src/components/heartbeat-manager.tsx:953)", "shortDescription": {"text": "Dangling fetch: GET /api/heartbeat (mc/src/components/heartbeat-manager.tsx:953)"}, "fullDescription": {"text": "`mc/src/components/heartbeat-manager.tsx:953` calls `GET /api/heartbeat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/heartbeat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-879a5f5a6ab8a485", "name": "Dangling fetch: POST /api/heartbeat (mc/src/components/heartbeat-manager.tsx:1011)", "shortDescription": {"text": "Dangling fetch: POST /api/heartbeat (mc/src/components/heartbeat-manager.tsx:1011)"}, "fullDescription": {"text": "`mc/src/components/heartbeat-manager.tsx:1011` calls `POST /api/heartbeat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/heartbeat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a84c202c9b0d379", "name": "Dangling fetch: POST /api/heartbeat (mc/src/components/heartbeat-manager.tsx:1107)", "shortDescription": {"text": "Dangling fetch: POST /api/heartbeat (mc/src/components/heartbeat-manager.tsx:1107)"}, "fullDescription": {"text": "`mc/src/components/heartbeat-manager.tsx:1107` calls `POST /api/heartbeat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/heartbeat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f98dc41a7954a0fe", "name": "Dangling fetch: GET /api/permissions (mc/src/components/permissions-view.tsx:185)", "shortDescription": {"text": "Dangling fetch: GET /api/permissions (mc/src/components/permissions-view.tsx:185)"}, "fullDescription": {"text": "`mc/src/components/permissions-view.tsx:185` calls `GET /api/permissions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/permissions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d88dac54603162b", "name": "Dangling fetch: POST /api/permissions (mc/src/components/permissions-view.tsx:222)", "shortDescription": {"text": "Dangling fetch: POST /api/permissions (mc/src/components/permissions-view.tsx:222)"}, "fullDescription": {"text": "`mc/src/components/permissions-view.tsx:222` calls `POST /api/permissions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/permissions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f59a21c2c8de05d", "name": "Dangling fetch: GET /api/usage/alerts?poll=1 (mc/src/components/usage-alert-monitor.tsx:22)", "shortDescription": {"text": "Dangling fetch: GET /api/usage/alerts?poll=1 (mc/src/components/usage-alert-monitor.tsx:22)"}, "fullDescription": {"text": "`mc/src/components/usage-alert-monitor.tsx:22` calls `GET /api/usage/alerts?poll=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/usage/alerts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4785b09371d2f0ce", "name": "Dangling fetch: GET https://api.telegram.org/bot${botToken}/getMe (mc/src/app/api/onboard/route.ts:648)", "shortDescription": {"text": "Dangling fetch: GET https://api.telegram.org/bot${botToken}/getMe (mc/src/app/api/onboard/route.ts:648)"}, "fullDescription": {"text": "`mc/src/app/api/onboard/route.ts:648` calls `GET https://api.telegram.org/bot${botToken}/getMe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.telegram.org/bot/<p>/getme`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f682e7fd79dbd50", "name": "Dangling fetch: GET https://discord.com/api/v10/users/@me (mc/src/app/api/onboard/route.ts:662)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/users/@me (mc/src/app/api/onboard/route.ts:662)"}, "fullDescription": {"text": "`mc/src/app/api/onboard/route.ts:662` calls `GET https://discord.com/api/v10/users/@me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/users/@me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea08192302b8421b", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (mc/src/app/api/memory/graph/route.ts:400)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (mc/src/app/api/memory/graph/route.ts:400)"}, "fullDescription": {"text": "`mc/src/app/api/memory/graph/route.ts:400` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57369df7b77436dd", "name": "Dangling fetch: GET https://registry.npmjs.org/@openclaw%2Fdashboard/latest (mc/src/app/api/mission-control-update/route", "shortDescription": {"text": "Dangling fetch: GET https://registry.npmjs.org/@openclaw%2Fdashboard/latest (mc/src/app/api/mission-control-update/route.ts:144)"}, "fullDescription": {"text": "`mc/src/app/api/mission-control-update/route.ts:144` calls `GET https://registry.npmjs.org/@openclaw%2Fdashboard/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/registry.npmjs.org/@openclaw%2fdashboard/latest`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a30fb3a1f5a7877", "name": "Dangling fetch: POST /api/gateway (mc/src/lib/restart-store.ts:17)", "shortDescription": {"text": "Dangling fetch: POST /api/gateway (mc/src/lib/restart-store.ts:17)"}, "fullDescription": {"text": "`mc/src/lib/restart-store.ts:17` calls `POST /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c19547c39bfc686c", "name": "Dangling fetch: GET /api/gateway (mc/src/lib/gateway-status-store.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /api/gateway (mc/src/lib/gateway-status-store.ts:132)"}, "fullDescription": {"text": "`mc/src/lib/gateway-status-store.ts:132` calls `GET /api/gateway` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/gateway`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d6ea38c36ed5931", "name": "Dangling fetch: GET https://openrouter.ai/api/v1/models (mc/src/lib/openrouter-pricing.ts:73)", "shortDescription": {"text": "Dangling fetch: GET https://openrouter.ai/api/v1/models (mc/src/lib/openrouter-pricing.ts:73)"}, "fullDescription": {"text": "`mc/src/lib/openrouter-pricing.ts:73` calls `GET https://openrouter.ai/api/v1/models` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/openrouter.ai/api/v1/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1dd79b6bef9ce495", "name": "Unused endpoint: USE /api/buddy", "shortDescription": {"text": "Unused endpoint: USE /api/buddy"}, "fullDescription": {"text": "`rag/app.js` declares `USE /api/buddy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`rag/app.js` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ffc9ad08ed6cdd74", "name": "Unused endpoint: GET /documents", "shortDescription": {"text": "Unused endpoint: GET /documents"}, "fullDescription": {"text": "`rag/app.js` declares `GET /documents` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e5ac5e94b66deac", "name": "Unused endpoint: GET /upload", "shortDescription": {"text": "Unused endpoint: GET /upload"}, "fullDescription": {"text": "`rag/app.js` declares `GET /upload` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2b47f92cb1ccc70", "name": "Unused endpoint: GET /maintenance", "shortDescription": {"text": "Unused endpoint: GET /maintenance"}, "fullDescription": {"text": "`rag/app.js` declares `GET /maintenance` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-21cf56c09f860b64", "name": "Unused endpoint: GET /index.html", "shortDescription": {"text": "Unused endpoint: GET /index.html"}, "fullDescription": {"text": "`rag/app.js` declares `GET /index.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe7d4f395a09d9e0", "name": "Unused endpoint: GET /documents.html", "shortDescription": {"text": "Unused endpoint: GET /documents.html"}, "fullDescription": {"text": "`rag/app.js` declares `GET /documents.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea66ab04e23f7e64", "name": "Unused endpoint: GET /search.html", "shortDescription": {"text": "Unused endpoint: GET /search.html"}, "fullDescription": {"text": "`rag/app.js` declares `GET /search.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05be2d39c42c2592", "name": "Unused endpoint: GET /upload.html", "shortDescription": {"text": "Unused endpoint: GET /upload.html"}, "fullDescription": {"text": "`rag/app.js` declares `GET /upload.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ed8fd7ed100853e", "name": "Unused endpoint: GET /maintenance.html", "shortDescription": {"text": "Unused endpoint: GET /maintenance.html"}, "fullDescription": {"text": "`rag/app.js` declares `GET /maintenance.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5d473870d5f50c0", "name": "Unused endpoint: USE /api/rag", "shortDescription": {"text": "Unused endpoint: USE /api/rag"}, "fullDescription": {"text": "`rag/app.js` declares `USE /api/rag` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6bf899e37f5c9154", "name": "Unused endpoint: POST /snapshots", "shortDescription": {"text": "Unused endpoint: POST /snapshots"}, "fullDescription": {"text": "`rag/routes/snapshots.routes.js` declares `POST /snapshots` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-93e03e0a8ca16fd4", "name": "Unused endpoint: GET /snapshots", "shortDescription": {"text": "Unused endpoint: GET /snapshots"}, "fullDescription": {"text": "`rag/routes/snapshots.routes.js` declares `GET /snapshots` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-490dd18f2c1835fe", "name": "Unused endpoint: DELETE /snapshots/:name", "shortDescription": {"text": "Unused endpoint: DELETE /snapshots/:name"}, "fullDescription": {"text": "`rag/routes/snapshots.routes.js` declares `DELETE /snapshots/:name` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9dcc052f40e3fd6e", "name": "Unused endpoint: POST /snapshots/:name/restore", "shortDescription": {"text": "Unused endpoint: POST /snapshots/:name/restore"}, "fullDescription": {"text": "`rag/routes/snapshots.routes.js` declares `POST /snapshots/:name/restore` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65a667bcc38fb792", "name": "Unused endpoint: POST /ingest", "shortDescription": {"text": "Unused endpoint: POST /ingest"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `POST /ingest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee82d381f92e9834", "name": "Unused endpoint: POST /documents", "shortDescription": {"text": "Unused endpoint: POST /documents"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `POST /documents` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bc16c3e0434a6cf", "name": "Unused endpoint: POST /ingest/batch", "shortDescription": {"text": "Unused endpoint: POST /ingest/batch"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `POST /ingest/batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4ee59bebdd84785", "name": "Unused endpoint: POST /ingest-scan", "shortDescription": {"text": "Unused endpoint: POST /ingest-scan"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `POST /ingest-scan` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f9dbfe6a10ed4e2", "name": "Unused endpoint: GET /ingest-scan/:jobId", "shortDescription": {"text": "Unused endpoint: GET /ingest-scan/:jobId"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `GET /ingest-scan/:jobId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d1f890e605c46a99", "name": "Unused endpoint: DELETE /ingest-scan/:jobId", "shortDescription": {"text": "Unused endpoint: DELETE /ingest-scan/:jobId"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `DELETE /ingest-scan/:jobId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17a164638609b114", "name": "Unused endpoint: POST /search", "shortDescription": {"text": "Unused endpoint: POST /search"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `POST /search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30ebcb9eb80baa29", "name": "Unused endpoint: DELETE /documents/:documentId", "shortDescription": {"text": "Unused endpoint: DELETE /documents/:documentId"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `DELETE /documents/:documentId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ad68c06f5b5283a", "name": "Unused endpoint: POST /cache/clear", "shortDescription": {"text": "Unused endpoint: POST /cache/clear"}, "fullDescription": {"text": "`rag/routes/rag.js` declares `POST /cache/clear` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7d3847589d32a25", "name": "Unused endpoint: POST /manifests", "shortDescription": {"text": "Unused endpoint: POST /manifests"}, "fullDescription": {"text": "`rag/routes/manifest.routes.js` declares `POST /manifests` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-22e718c9602aa7b3", "name": "Unused endpoint: GET /manifests/latest", "shortDescription": {"text": "Unused endpoint: GET /manifests/latest"}, "fullDescription": {"text": "`rag/routes/manifest.routes.js` declares `GET /manifests/latest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b17fb1f189a7a525", "name": "Unused endpoint: GET /deletion-preview", "shortDescription": {"text": "Unused endpoint: GET /deletion-preview"}, "fullDescription": {"text": "`rag/routes/manifest.routes.js` declares `GET /deletion-preview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09da8787bc214335", "name": "Unused endpoint: POST /cleanup", "shortDescription": {"text": "Unused endpoint: POST /cleanup"}, "fullDescription": {"text": "`rag/routes/manifest.routes.js` declares `POST /cleanup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-26f53d6e5ee1ff5c", "name": "Unused endpoint: GET /embedding-migration/status", "shortDescription": {"text": "Unused endpoint: GET /embedding-migration/status"}, "fullDescription": {"text": "`rag/routes/migration.routes.js` declares `GET /embedding-migration/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6e274b3b5af3a53", "name": "Unused endpoint: POST /embedding-migration/reindex", "shortDescription": {"text": "Unused endpoint: POST /embedding-migration/reindex"}, "fullDescription": {"text": "`rag/routes/migration.routes.js` declares `POST /embedding-migration/reindex` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa2aee986d00b87f", "name": "Unused endpoint: GET /embedding-migration/reindex/:jobId", "shortDescription": {"text": "Unused endpoint: GET /embedding-migration/reindex/:jobId"}, "fullDescription": {"text": "`rag/routes/migration.routes.js` declares `GET /embedding-migration/reindex/:jobId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0684d1ce52b578b1", "name": "Unused endpoint: GET /documents/:id", "shortDescription": {"text": "Unused endpoint: GET /documents/:id"}, "fullDescription": {"text": "`rag/routes/document.routes.js` declares `GET /documents/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f7fc1bd678f789e", "name": "Unused endpoint: GET /documents/:id/chunks", "shortDescription": {"text": "Unused endpoint: GET /documents/:id/chunks"}, "fullDescription": {"text": "`rag/routes/document.routes.js` declares `GET /documents/:id/chunks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c676a36bf4ef0884", "name": "Unused endpoint: GET /telemetry/ingest", "shortDescription": {"text": "Unused endpoint: GET /telemetry/ingest"}, "fullDescription": {"text": "`rag/routes/telemetry.routes.js` declares `GET /telemetry/ingest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5d4b410cfe75bb3", "name": "Unused endpoint: GET /telemetry/ingest/summary", "shortDescription": {"text": "Unused endpoint: GET /telemetry/ingest/summary"}, "fullDescription": {"text": "`rag/routes/telemetry.routes.js` declares `GET /telemetry/ingest/summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-add6dcb6007baef6", "name": "Unused endpoint: GET /leaderboard", "shortDescription": {"text": "Unused endpoint: GET /leaderboard"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /leaderboard` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a01192d96724fed1", "name": "Unused endpoint: GET /courthouse", "shortDescription": {"text": "Unused endpoint: GET /courthouse"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /courthouse` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0b41c75dbacff0af", "name": "Unused endpoint: GET /profiler", "shortDescription": {"text": "Unused endpoint: GET /profiler"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /profiler` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b76598081509cd69", "name": "Unused endpoint: GET /efficiency-map", "shortDescription": {"text": "Unused endpoint: GET /efficiency-map"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /efficiency-map` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0fda45dbda23206", "name": "Unused endpoint: GET /results-explorer", "shortDescription": {"text": "Unused endpoint: GET /results-explorer"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /results-explorer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d86afd7dd2beb431", "name": "Unused endpoint: GET /setup", "shortDescription": {"text": "Unused endpoint: GET /setup"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /setup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3c51ae78b646206b", "name": "Unused endpoint: GET /benchmark-v2.html", "shortDescription": {"text": "Unused endpoint: GET /benchmark-v2.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /benchmark-v2.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c42c8c48e8eb0df1", "name": "Unused endpoint: GET /leaderboard-v2.html", "shortDescription": {"text": "Unused endpoint: GET /leaderboard-v2.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /leaderboard-v2.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46e839d2ce7be0d7", "name": "Unused endpoint: GET /courthouse-v2.html", "shortDescription": {"text": "Unused endpoint: GET /courthouse-v2.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /courthouse-v2.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88678f008acf51e5", "name": "Unused endpoint: GET /model-profiler.html", "shortDescription": {"text": "Unused endpoint: GET /model-profiler.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /model-profiler.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-23086e9566b07b1a", "name": "Unused endpoint: GET /efficiency-map.html", "shortDescription": {"text": "Unused endpoint: GET /efficiency-map.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /efficiency-map.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-328c6bb8302b8b3c", "name": "Unused endpoint: GET /results-explorer.html", "shortDescription": {"text": "Unused endpoint: GET /results-explorer.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /results-explorer.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a8ef0a98dcca64a3", "name": "Unused endpoint: GET /setup.html", "shortDescription": {"text": "Unused endpoint: GET /setup.html"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /setup.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b0cc3d8f33001f8", "name": "Unused endpoint: GET /api/ollama-hosts", "shortDescription": {"text": "Unused endpoint: GET /api/ollama-hosts"}, "fullDescription": {"text": "`benchmark/server.js` declares `GET /api/ollama-hosts` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef460857e9b680a8", "name": "Unused endpoint: USE /api/setup", "shortDescription": {"text": "Unused endpoint: USE /api/setup"}, "fullDescription": {"text": "`benchmark/server.js` declares `USE /api/setup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22795"}, "properties": {"repository": "WindriderQc/aiOPs", "repoUrl": "https://github.com/WindriderQc/aiOPs", "branch": "main"}, "results": [{"ruleId": "scanner-b278301ad1c0f9d3", "level": "note", "message": {"text": "Possibly dead Python function: patched_getaddrinfo"}, "properties": {"repobilityId": "5e259d62a4e605fe", "scanner": "scanner-primary", "fingerprint": "b278301ad1c0f9d3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hermes-telegram-dns-fallback.py:54"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc368922a0c16de6", "level": "note", "message": {"text": "Possibly dead Python function: patched_gethostbyname"}, "properties": {"repobilityId": "48bcff406192bdbd", "scanner": "scanner-primary", "fingerprint": "dc368922a0c16de6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hermes-telegram-dns-fallback.py:64"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d4023dea31a6dfa9", "level": "note", "message": {"text": "Possibly dead Python function: patched_gethostbyname_ex"}, "properties": {"repobilityId": "47acd5b8a446bc27", "scanner": "scanner-primary", "fingerprint": "d4023dea31a6dfa9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hermes-telegram-dns-fallback.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7127f37378511ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/search-modal.tsx:562"}, "properties": {"repobilityId": "e7e131b67cd29d40", "scanner": "scanner-primary", "fingerprint": "a7127f37378511ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-419328c5b6790d1d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mc/src/components/search-modal.tsx:583"}, "properties": {"repobilityId": "2bf735614bdc4e79", "scanner": "scanner-primary", "fingerprint": "419328c5b6790d1d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f0e6674f3513b548", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/sessions-view.tsx:142"}, "properties": {"repobilityId": "5b97a458ff1a3df9", "scanner": "scanner-primary", "fingerprint": "f0e6674f3513b548", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-201b57e4d7905180", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/usage-view.tsx:270"}, "properties": {"repobilityId": "1843c424b0be03ba", "scanner": "scanner-primary", "fingerprint": "201b57e4d7905180", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ec41d594070166f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/skills-view.tsx:1405"}, "properties": {"repobilityId": "a05096e2a1557b39", "scanner": "scanner-primary", "fingerprint": "6ec41d594070166f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ab6415a66d89fd5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/integrations-view.tsx:773"}, "properties": {"repobilityId": "435f7ff2b3f2211e", "scanner": "scanner-primary", "fingerprint": "6ab6415a66d89fd5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-323cc8fab85a3f20", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/sidebar.tsx:316"}, "properties": {"repobilityId": "e2aaef247029c766", "scanner": "scanner-primary", "fingerprint": "323cc8fab85a3f20", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-95c48ece3f512d34", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/audio-view.tsx:563"}, "properties": {"repobilityId": "c5badaca85017eab", "scanner": "scanner-primary", "fingerprint": "95c48ece3f512d34", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ebc12bc3286d8dc5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/calendar-view.tsx:696"}, "properties": {"repobilityId": "7fad03e904abb7a2", "scanner": "scanner-primary", "fingerprint": "ebc12bc3286d8dc5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f96764678b987ea", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/dashboard-view.tsx:1504"}, "properties": {"repobilityId": "93aa2aefcd21b449", "scanner": "scanner-primary", "fingerprint": "4f96764678b987ea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-32e08c3496428152", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/hooks-view.tsx:303"}, "properties": {"repobilityId": "9912c4a31c8779de", "scanner": "scanner-primary", "fingerprint": "32e08c3496428152", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c87a86ddeeb3a561", "level": "note", "message": {"text": "React Flow <MiniMap> without dark background \u2014 mc/src/components/memory-graph-view.tsx:1778"}, "properties": {"repobilityId": "92c49963933f4264", "scanner": "scanner-primary", "fingerprint": "c87a86ddeeb3a561", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.minimap.no-bg"]}}, {"ruleId": "scanner-96207c13876c544f", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 mc/src/components/memory-graph-view.tsx:1779"}, "properties": {"repobilityId": "74dd51af7dc0e437", "scanner": "scanner-primary", "fingerprint": "96207c13876c544f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-2b3d57413d3f73b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/memory-graph-view.tsx:1903"}, "properties": {"repobilityId": "f32ef8599a16018c", "scanner": "scanner-primary", "fingerprint": "2b3d57413d3f73b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6a51b507d82ec3da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/header.tsx:292"}, "properties": {"repobilityId": "a9e9982731134a9c", "scanner": "scanner-primary", "fingerprint": "6a51b507d82ec3da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dcab46eb3b839a9b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/activity-view.tsx:157"}, "properties": {"repobilityId": "5de086a571808b2a", "scanner": "scanner-primary", "fingerprint": "dcab46eb3b839a9b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2a03a62ccdd3a49d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/notification-center.tsx:416"}, "properties": {"repobilityId": "dec5dc98daee8da7", "scanner": "scanner-primary", "fingerprint": "2a03a62ccdd3a49d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3e8c29fca9d85885", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/vector-view.tsx:149"}, "properties": {"repobilityId": "e125b480f58ae0bd", "scanner": "scanner-primary", "fingerprint": "3e8c29fca9d85885", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ec4fcec6bb3b10f8", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 mc/src/components/agents-view.tsx:1587"}, "properties": {"repobilityId": "577706d4d49c6bca", "scanner": "scanner-primary", "fingerprint": "ec4fcec6bb3b10f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-e966b83a89eb71c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/agents-view.tsx:311"}, "properties": {"repobilityId": "051c667d37abec22", "scanner": "scanner-primary", "fingerprint": "e966b83a89eb71c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8bb9f7a359104340", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/chat-view.tsx:367"}, "properties": {"repobilityId": "aadfcf852540333c", "scanner": "scanner-primary", "fingerprint": "8bb9f7a359104340", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6eaeadb54d055b63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/docs-view.tsx:967"}, "properties": {"repobilityId": "94681da7ff8b3a9a", "scanner": "scanner-primary", "fingerprint": "6eaeadb54d055b63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b0d8f22a23927259", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/memory-view.tsx:1125"}, "properties": {"repobilityId": "ee1579c843171838", "scanner": "scanner-primary", "fingerprint": "b0d8f22a23927259", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b760027cfe6bd402", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/models-view.tsx:220"}, "properties": {"repobilityId": "a266d353166c0e52", "scanner": "scanner-primary", "fingerprint": "b760027cfe6bd402", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f00a84a45cb40538", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/components/models-view.tsx:1737"}, "properties": {"repobilityId": "155466b0bdf0165e", "scanner": "scanner-primary", "fingerprint": "f00a84a45cb40538", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9bed118d83bfcbfc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/tasks-view.tsx:432"}, "properties": {"repobilityId": "c01a79f61ea9764f", "scanner": "scanner-primary", "fingerprint": "9bed118d83bfcbfc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-990ec81832a8e96e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/permissions-view.tsx:850"}, "properties": {"repobilityId": "852953b2c5a42472", "scanner": "scanner-primary", "fingerprint": "990ec81832a8e96e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e9ebfb96012218ac", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 mc/src/components/agentx-switcher.tsx:50"}, "properties": {"repobilityId": "022ba67089fb9584", "scanner": "scanner-primary", "fingerprint": "e9ebfb96012218ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-237de9b6029583da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 mc/src/components/config-editor.tsx:1946"}, "properties": {"repobilityId": "0b2742837a15eddd", "scanner": "scanner-primary", "fingerprint": "237de9b6029583da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-059f5b3aadb8453f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mc/src/components/ui/chart.tsx:83"}, "properties": {"repobilityId": "c0e1004fca68c101", "scanner": "scanner-primary", "fingerprint": "059f5b3aadb8453f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e05da6b7ef587a6a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/app/api/chat/route.ts:316"}, "properties": {"repobilityId": "857d5b221576e305", "scanner": "scanner-primary", "fingerprint": "e05da6b7ef587a6a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d385312fbbedcf76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/lib/request-log.ts:6"}, "properties": {"repobilityId": "a47cb32369657a37", "scanner": "scanner-primary", "fingerprint": "d385312fbbedcf76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ecd2a4e16218a8b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mc/src/lib/inprocess-usage-scheduler.ts:35"}, "properties": {"repobilityId": "c21a622deebf1169", "scanner": "scanner-primary", "fingerprint": "8ecd2a4e16218a8b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1db75c1d6813450b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/corpus-runner-0127.js:70"}, "properties": {"repobilityId": "8f06edeffda32797", "scanner": "scanner-primary", "fingerprint": "1db75c1d6813450b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5152d48a68eba2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/subscription-audit.js:478"}, "properties": {"repobilityId": "c7cb0db0b93d32b5", "scanner": "scanner-primary", "fingerprint": "d5152d48a68eba2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ae08ce9a1e42b31", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/corpus-0128-sample-extractor.js:103"}, "properties": {"repobilityId": "9010f1ba3cfd46bf", "scanner": "scanner-primary", "fingerprint": "2ae08ce9a1e42b31", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d4e43ac3c9a63aea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/with-agentx-claim.js:124"}, "properties": {"repobilityId": "e15d4b670bdeb4e4", "scanner": "scanner-primary", "fingerprint": "d4e43ac3c9a63aea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-950febdd21b6dcfd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/master-brain-canary.js:34"}, "properties": {"repobilityId": "8964d978a2c6f682", "scanner": "scanner-primary", "fingerprint": "950febdd21b6dcfd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f510268fc3d173cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/token-burn-report.js:35"}, "properties": {"repobilityId": "18df80c53dd00fc5", "scanner": "scanner-primary", "fingerprint": "f510268fc3d173cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4bfebc1cd735e3e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync-dependencies.js:118"}, "properties": {"repobilityId": "fdd3158893160393", "scanner": "scanner-primary", "fingerprint": "4bfebc1cd735e3e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-98f03c3329253dc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rankings-with-confidence.js:70"}, "properties": {"repobilityId": "4546e5b18506bd58", "scanner": "scanner-primary", "fingerprint": "98f03c3329253dc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8bc2553a18b17f03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/drift-analysis-0135.js:84"}, "properties": {"repobilityId": "1b157cf8cb0ae988", "scanner": "scanner-primary", "fingerprint": "8bc2553a18b17f03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a0e216b82377614", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 rag/ingestWorker.js:29"}, "properties": {"repobilityId": "77c98c37d83a33d1", "scanner": "scanner-primary", "fingerprint": "6a0e216b82377614", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-76f344ff87b7745e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 rag/scripts/extract-rag-zips.js:72"}, "properties": {"repobilityId": "bb8bc61edc4eeafe", "scanner": "scanner-primary", "fingerprint": "76f344ff87b7745e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-89e40c03bf04316c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-benchmark-prompts.js:313"}, "properties": {"repobilityId": "29b78222de3a1ef3", "scanner": "scanner-primary", "fingerprint": "89e40c03bf04316c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cada5da509c4a764", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/benchmark-compression.js:23"}, "properties": {"repobilityId": "802cc710dfcc4d70", "scanner": "scanner-primary", "fingerprint": "cada5da509c4a764", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-222ea1b105aa64f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/host-variance-investigation.js:11"}, "properties": {"repobilityId": "dff56167891c3db2", "scanner": "scanner-primary", "fingerprint": "222ea1b105aa64f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c87ed70787cca26", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/context-performance-sweep.js:66"}, "properties": {"repobilityId": "2551c5b77d12e9fe", "scanner": "scanner-primary", "fingerprint": "0c87ed70787cca26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07cf7c2f32752a7e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/diagnose-empty-responses.js:23"}, "properties": {"repobilityId": "98fec1cddd8ab96f", "scanner": "scanner-primary", "fingerprint": "07cf7c2f32752a7e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37b91fffaf678802", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-quality-scores.js:23"}, "properties": {"repobilityId": "35c28c7b24f0ef1d", "scanner": "scanner-primary", "fingerprint": "37b91fffaf678802", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39f5493409d8e3f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/run-ugbrutal-profile-l1-l2.js:75"}, "properties": {"repobilityId": "32de5ad3ea641611", "scanner": "scanner-primary", "fingerprint": "39f5493409d8e3f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc0a8d4528403812", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/verify0111LiveBatch.js:95"}, "properties": {"repobilityId": "0bfea55c8043a44d", "scanner": "scanner-primary", "fingerprint": "dc0a8d4528403812", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b52829b360dcd005", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/analyze-quality-scores.js:23"}, "properties": {"repobilityId": "58c8d0bceaa2b1ea", "scanner": "scanner-primary", "fingerprint": "b52829b360dcd005", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bf5da7e1da10384f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/calibration-sprint.js:62"}, "properties": {"repobilityId": "c33bb30f09913040", "scanner": "scanner-primary", "fingerprint": "bf5da7e1da10384f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-72b48a6584cfd82b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/fairness-report.js:29"}, "properties": {"repobilityId": "64a2e9a89786aefd", "scanner": "scanner-primary", "fingerprint": "72b48a6584cfd82b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f52a481c5ec7dd1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/rescore-deterministic.js:135"}, "properties": {"repobilityId": "56701f0a36a83c6c", "scanner": "scanner-primary", "fingerprint": "7f52a481c5ec7dd1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-adac36b1e7259924", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-modelprofile-category-metadata.js:88"}, "properties": {"repobilityId": "d21aecc1189781a9", "scanner": "scanner-primary", "fingerprint": "adac36b1e7259924", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51a897080c9cf750", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/fit-judge-confidence.js:425"}, "properties": {"repobilityId": "f945fadd40cb3c4a", "scanner": "scanner-primary", "fingerprint": "51a897080c9cf750", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17cc31653ab7e43b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-token-budget.js:21"}, "properties": {"repobilityId": "05ee78e38a3bbf13", "scanner": "scanner-primary", "fingerprint": "17cc31653ab7e43b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a71b7a3275d02440", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/seed-judge-ground-truth.js:452"}, "properties": {"repobilityId": "e7db59f42b5f80f6", "scanner": "scanner-primary", "fingerprint": "a71b7a3275d02440", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3a17f35bdb587171", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/corpus-0127-ac6-rerun.js:93"}, "properties": {"repobilityId": "1bf1a69f41e3ed82", "scanner": "scanner-primary", "fingerprint": "3a17f35bdb587171", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7c50a60230ebb15a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/migrate-batch-id-to-objectid.js:20"}, "properties": {"repobilityId": "4008d4c10e503829", "scanner": "scanner-primary", "fingerprint": "7c50a60230ebb15a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-554e207c1c9808ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/scripts/audit-prompt-coverage.js:21"}, "properties": {"repobilityId": "6b5031124d66af8b", "scanner": "scanner-primary", "fingerprint": "554e207c1c9808ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-181349afd2fd18bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/public/js/results-explorer.js:170"}, "properties": {"repobilityId": "9f14da203e78d2d8", "scanner": "scanner-primary", "fingerprint": "181349afd2fd18bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6e3c50cde8088e8", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 benchmark/public/js/benchmark-v2/batch-config.js:1464"}, "properties": {"repobilityId": "4cdf8082655f26b7", "scanner": "scanner-primary", "fingerprint": "c6e3c50cde8088e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-49e102e8e9b8b1af", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 benchmark/src/services/scoring/formatComplianceScorer.js:311"}, "properties": {"repobilityId": "6f4f6efe97c17e83", "scanner": "scanner-primary", "fingerprint": "49e102e8e9b8b1af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-eff2fc2652eb70d4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/server.js:124"}, "properties": {"repobilityId": "dd033f7a8e52d7b0", "scanner": "scanner-primary", "fingerprint": "eff2fc2652eb70d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-46495545596304a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/jestSuiteTimerReporter.js:29"}, "properties": {"repobilityId": "06aa809ab20aac64", "scanner": "scanner-primary", "fingerprint": "46495545596304a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a3a7381b548c0f68", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/setup-env.js:88"}, "properties": {"repobilityId": "90daeb97046a0e79", "scanner": "scanner-primary", "fingerprint": "a3a7381b548c0f68", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b4fbd1b25414bb54", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/test-server.js:12"}, "properties": {"repobilityId": "d53483aeaaebc5a3", "scanner": "scanner-primary", "fingerprint": "b4fbd1b25414bb54", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fe72ad87b095642", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/scripts/seed-negative-feedback.js:58"}, "properties": {"repobilityId": "d4e5565aa5353261", "scanner": "scanner-primary", "fingerprint": "9fe72ad87b095642", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-997b37f371d7fd26", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/onboarding-wizard.spec.js:124"}, "properties": {"repobilityId": "4ab96275a00822a3", "scanner": "scanner-primary", "fingerprint": "997b37f371d7fd26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64f985e866c6d649", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/performance-dashboard-drilldown.spec.js:41"}, "properties": {"repobilityId": "23e00777f57930ae", "scanner": "scanner-primary", "fingerprint": "64f985e866c6d649", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d5362168dca2deb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/tests/e2e/advanced-filtering.spec.js:702"}, "properties": {"repobilityId": "9884bea70cef3dcb", "scanner": "scanner-primary", "fingerprint": "5d5362168dca2deb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d1865ca153fed33", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/migrate-pinned-models.js:29"}, "properties": {"repobilityId": "fae0126c39efff31", "scanner": "scanner-primary", "fingerprint": "1d1865ca153fed33", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-85abcb3a914a42c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/migrate-sovereignty-to-preferences.js:26"}, "properties": {"repobilityId": "75830132f2896c2f", "scanner": "scanner-primary", "fingerprint": "85abcb3a914a42c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae25e9a526510278", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/seed-persona.js:18"}, "properties": {"repobilityId": "13912fd60567efc1", "scanner": "scanner-primary", "fingerprint": "ae25e9a526510278", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43b1ff17616a9aee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/drop-workspace-indexes-0124.js:73"}, "properties": {"repobilityId": "9e4ce58e2f17af13", "scanner": "scanner-primary", "fingerprint": "43b1ff17616a9aee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94cc111ccbb1ab30", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/sync-openclaw-schedule.js:144"}, "properties": {"repobilityId": "73a70f3490606ed0", "scanner": "scanner-primary", "fingerprint": "94cc111ccbb1ab30", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b8e5a4b4172ce56", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/buddy-v1-archive.js:21"}, "properties": {"repobilityId": "fb92828b7d940867", "scanner": "scanner-primary", "fingerprint": "0b8e5a4b4172ce56", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c855258799be29ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/scripts/create-indexes.js:16"}, "properties": {"repobilityId": "f948b4a9917e9f9c", "scanner": "scanner-primary", "fingerprint": "c855258799be29ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d7f7532fce35457", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/performance-page.js:26"}, "properties": {"repobilityId": "2375b00275ad58d8", "scanner": "scanner-primary", "fingerprint": "6d7f7532fce35457", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-056a4bb19449363e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/api-utils.js:126"}, "properties": {"repobilityId": "0722592e8bc37613", "scanner": "scanner-primary", "fingerprint": "056a4bb19449363e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ca6a108a72f0bce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/shared.js:17"}, "properties": {"repobilityId": "47f7bf32e1077976", "scanner": "scanner-primary", "fingerprint": "6ca6a108a72f0bce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-687bb144f70e7313", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/general-utils.js:28"}, "properties": {"repobilityId": "50f41e0e5ae5e3fe", "scanner": "scanner-primary", "fingerprint": "687bb144f70e7313", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-425e6a259c96b552", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/public/js/utils/geo-utils.js:44"}, "properties": {"repobilityId": "3c0471435768efbe", "scanner": "scanner-primary", "fingerprint": "425e6a259c96b552", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-da21be20be558816", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 core/public/js/components/buddy-widget-dom.js:51"}, "properties": {"repobilityId": "191ce4f742e9b91c", "scanner": "scanner-primary", "fingerprint": "da21be20be558816", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8fdc64fb71a83386", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 core/public/host-agent/agent.js:270"}, "properties": {"repobilityId": "bbea550266dc28c1", "scanner": "scanner-primary", "fingerprint": "8fdc64fb71a83386", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ef9528ec2c51ac8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 core/src/app.js:60"}, "properties": {"repobilityId": "202447fbc0b70e42", "scanner": "scanner-primary", "fingerprint": "4ef9528ec2c51ac8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1564e3b9599866bf", "level": "warning", "message": {"text": "Privileged port 66 in use"}, "properties": {"repobilityId": "5a0ece3ee576c239", "scanner": "scanner-primary", "fingerprint": "1564e3b9599866bf", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker-compose.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1f1743df07a3b826", "level": "warning", "message": {"text": "Dockerfile runs as root: benchmark/Dockerfile"}, "properties": {"repobilityId": "a16bca39fcc3af40", "scanner": "scanner-primary", "fingerprint": "1f1743df07a3b826", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-a674050f057fd19b", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-slim"}, "properties": {"repobilityId": "28e2af00305a10d5", "scanner": "scanner-primary", "fingerprint": "a674050f057fd19b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0accc5790790dbf5", "level": "warning", "message": {"text": "Dockerfile runs as root: core/Dockerfile"}, "properties": {"repobilityId": "c7354ff991f8d727", "scanner": "scanner-primary", "fingerprint": "0accc5790790dbf5", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-954901b2b3a05f5e", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-slim"}, "properties": {"repobilityId": "cd0863b10cd77196", "scanner": "scanner-primary", "fingerprint": "954901b2b3a05f5e", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-87fccf8159def0da", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/next.config.ts:2"}, "properties": {"repobilityId": "54323fda4f8e13cf", "scanner": "scanner-primary", "fingerprint": "87fccf8159def0da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/next.config.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-688f1ede66eb5ef9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in mc/src/components/search-modal.tsx:583"}, "properties": {"repobilityId": "043214d283ae751f", "scanner": "scanner-primary", "fingerprint": "688f1ede66eb5ef9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/components/search-modal.tsx"}, "region": {"startLine": 583}}}]}, {"ruleId": "scanner-6a944790d34d6ef1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in mc/src/components/ui/chart.tsx:83"}, "properties": {"repobilityId": "c5d0552ec623aaae", "scanner": "scanner-primary", "fingerprint": "6a944790d34d6ef1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/components/ui/chart.tsx"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-fa88b8ac62ba558a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/doctor/run/route.ts:2"}, "properties": {"repobilityId": "47e653d886724eb6", "scanner": "scanner-primary", "fingerprint": "fa88b8ac62ba558a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/doctor/run/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-0b3c165361a81701", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/tailscale/route.ts:63"}, "properties": {"repobilityId": "e62dcb29236fd9bd", "scanner": "scanner-primary", "fingerprint": "0b3c165361a81701", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/tailscale/route.ts"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-bbfdc026675c0fb5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/tailscale/route.ts:2"}, "properties": {"repobilityId": "c4742008b5699051", "scanner": "scanner-primary", "fingerprint": "bbfdc026675c0fb5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/tailscale/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-5dec48d60bcba3d6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/terminal/route.ts:2"}, "properties": {"repobilityId": "e453d5d6e7e53410", "scanner": "scanner-primary", "fingerprint": "5dec48d60bcba3d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/terminal/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-a510f3cda381e99c", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/memory/route.ts:162"}, "properties": {"repobilityId": "09c05e04affc2dea", "scanner": "scanner-primary", "fingerprint": "a510f3cda381e99c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/memory/route.ts"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-679a1d3c852a403d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/memory/route.ts:12"}, "properties": {"repobilityId": "4a907694144e4148", "scanner": "scanner-primary", "fingerprint": "679a1d3c852a403d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/memory/route.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-ff50fb8b48fec55e", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/memory/graph/route.ts:749"}, "properties": {"repobilityId": "84282175bb38e4f9", "scanner": "scanner-primary", "fingerprint": "ff50fb8b48fec55e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/memory/graph/route.ts"}, "region": {"startLine": 749}}}]}, {"ruleId": "scanner-397ab66295f23a36", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/memory/graph/route.ts:3"}, "properties": {"repobilityId": "13730e1004724b28", "scanner": "scanner-primary", "fingerprint": "397ab66295f23a36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/memory/graph/route.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-141cc08026c2e6c5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/gateway/route.ts:94"}, "properties": {"repobilityId": "1ba13bb26721c113", "scanner": "scanner-primary", "fingerprint": "141cc08026c2e6c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/gateway/route.ts"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-c18c01c5dc5fced0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/gateway/route.ts:6"}, "properties": {"repobilityId": "dae17da1b0fd4ca5", "scanner": "scanner-primary", "fingerprint": "c18c01c5dc5fced0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/gateway/route.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-a42c2b4b6df05fb6", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/gateway/diagnostics/route.ts:79"}, "properties": {"repobilityId": "8c28dfecf27d4038", "scanner": "scanner-primary", "fingerprint": "a42c2b4b6df05fb6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/gateway/diagnostics/route.ts"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-0f7184ac1d0dee11", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/gateway/diagnostics/route.ts:2"}, "properties": {"repobilityId": "3ae15cc960d29a45", "scanner": "scanner-primary", "fingerprint": "0f7184ac1d0dee11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/gateway/diagnostics/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-ca1611a80cd4b711", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/skills/route.ts:339"}, "properties": {"repobilityId": "ecf50b6fe4c4c666", "scanner": "scanner-primary", "fingerprint": "ca1611a80cd4b711", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/skills/route.ts"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-aade5ea4f23a60bb", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/skills/install/route.ts:2"}, "properties": {"repobilityId": "431120ff1cab4164", "scanner": "scanner-primary", "fingerprint": "aade5ea4f23a60bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/skills/install/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-c1674a2d283961a5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/skills/clawhub/route.ts:193"}, "properties": {"repobilityId": "123e48b0aa64519e", "scanner": "scanner-primary", "fingerprint": "c1674a2d283961a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/skills/clawhub/route.ts"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-dbc7306cbc6df673", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/skills/clawhub/route.ts:2"}, "properties": {"repobilityId": "0af390300267fc9d", "scanner": "scanner-primary", "fingerprint": "dbc7306cbc6df673", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/skills/clawhub/route.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-cbb86264f0b5a519", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/app/api/stats/stream/route.ts:162"}, "properties": {"repobilityId": "56536e62deca51a4", "scanner": "scanner-primary", "fingerprint": "cbb86264f0b5a519", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/stats/stream/route.ts"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-8893ed325abe474d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/stats/stream/route.ts:4"}, "properties": {"repobilityId": "2194ea045109ed30", "scanner": "scanner-primary", "fingerprint": "8893ed325abe474d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/stats/stream/route.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-0c6ecda2124caf8f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/app/api/mission-control-update/route.ts:3"}, "properties": {"repobilityId": "511748b7ef8d24ef", "scanner": "scanner-primary", "fingerprint": "0c6ecda2124caf8f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/app/api/mission-control-update/route.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-79c9fb1874f6e3e9", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/lib/paths.ts:157"}, "properties": {"repobilityId": "749083fb25f15460", "scanner": "scanner-primary", "fingerprint": "79c9fb1874f6e3e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/paths.ts"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-ae2e0dc612349b18", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/paths.ts:20"}, "properties": {"repobilityId": "d8aa94610550f6ff", "scanner": "scanner-primary", "fingerprint": "ae2e0dc612349b18", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/paths.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-1d4b4697cd63c02b", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/lib/openclaw-cli.ts:126"}, "properties": {"repobilityId": "91a0c30bc9a9988c", "scanner": "scanner-primary", "fingerprint": "1d4b4697cd63c02b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/openclaw-cli.ts"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-d23ab730192f8025", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/openclaw-cli.ts:1"}, "properties": {"repobilityId": "328aadd64e0a92d1", "scanner": "scanner-primary", "fingerprint": "d23ab730192f8025", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/openclaw-cli.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-42ee94d098ccd444", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/lib/usage-db.ts:43"}, "properties": {"repobilityId": "22d85b37bf0c8a32", "scanner": "scanner-primary", "fingerprint": "42ee94d098ccd444", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/usage-db.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-c1c51f328065b154", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/usage-db.ts:1"}, "properties": {"repobilityId": "9d3ea4a8686e4dc9", "scanner": "scanner-primary", "fingerprint": "c1c51f328065b154", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/usage-db.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dbeddd8d149dd36b", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/lib/gog-cli.ts:100"}, "properties": {"repobilityId": "5a05b3e2d96d8d4d", "scanner": "scanner-primary", "fingerprint": "dbeddd8d149dd36b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/gog-cli.ts"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-b7e80d30ee14f450", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/gog-cli.ts:6"}, "properties": {"repobilityId": "8d37da0ab9013088", "scanner": "scanner-primary", "fingerprint": "b7e80d30ee14f450", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/gog-cli.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-607040088521cc6f", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in mc/src/lib/gog-google.ts:171"}, "properties": {"repobilityId": "b4d1e8143916c9c3", "scanner": "scanner-primary", "fingerprint": "607040088521cc6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/gog-google.ts"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-850248b915eb6292", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mc/src/lib/gog-google.ts:5"}, "properties": {"repobilityId": "6215d3984aa974f9", "scanner": "scanner-primary", "fingerprint": "850248b915eb6292", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/src/lib/gog-google.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-ae0bba8d0956526c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/with-agentx-claim.js:18"}, "properties": {"repobilityId": "55bc7ea5c146f84b", "scanner": "scanner-primary", "fingerprint": "ae0bba8d0956526c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/with-agentx-claim.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-1948f94310fdedac", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in rag/CLAUDE.md:107"}, "properties": {"repobilityId": "5b97eb2f041d24bb", "scanner": "scanner-primary", "fingerprint": "1948f94310fdedac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/CLAUDE.md"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-a2a738a2b4ad6298", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/documents.js:114"}, "properties": {"repobilityId": "bce1224b278ec621", "scanner": "scanner-primary", "fingerprint": "a2a738a2b4ad6298", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/public/js/documents.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-3b3d351e338355d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/dashboard.js:147"}, "properties": {"repobilityId": "d929e24c69444152", "scanner": "scanner-primary", "fingerprint": "3b3d351e338355d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/public/js/dashboard.js"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-3fb5f6709218d9bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/search.js:101"}, "properties": {"repobilityId": "0bd509956c790acb", "scanner": "scanner-primary", "fingerprint": "3fb5f6709218d9bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/public/js/search.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-1122e8000d6d3418", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/upload.js:228"}, "properties": {"repobilityId": "3a0cabd565ecad71", "scanner": "scanner-primary", "fingerprint": "1122e8000d6d3418", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/public/js/upload.js"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-60ca2aeb755a9638", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in rag/public/js/maintenance.js:52"}, "properties": {"repobilityId": "2ab892a9ec48b06a", "scanner": "scanner-primary", "fingerprint": "60ca2aeb755a9638", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/public/js/maintenance.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-20b75d0025fda904", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in rag/src/helpers/zip.js:14"}, "properties": {"repobilityId": "41952a455212ae71", "scanner": "scanner-primary", "fingerprint": "20b75d0025fda904", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/src/helpers/zip.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-9d21cc7e5ab85ea3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in rag/src/services/ingestWorker.js:4"}, "properties": {"repobilityId": "e6bfb261b3f2ae44", "scanner": "scanner-primary", "fingerprint": "9d21cc7e5ab85ea3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rag/src/services/ingestWorker.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-b00aa6b640cd4a52", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer.js:234"}, "properties": {"repobilityId": "f0c8d8a750f4ddf5", "scanner": "scanner-primary", "fingerprint": "b00aa6b640cd4a52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/results-explorer.js"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-89caaa682f8586bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer-charts.js:133"}, "properties": {"repobilityId": "50994daf12fb37e5", "scanner": "scanner-primary", "fingerprint": "89caaa682f8586bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/results-explorer-charts.js"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-0e9d701c7d502aef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/results-explorer-inspector.js:91"}, "properties": {"repobilityId": "d97fad6f567bf9d3", "scanner": "scanner-primary", "fingerprint": "0e9d701c7d502aef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/results-explorer-inspector.js"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-dd4a62e7f649e849", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/utils/shortcuts-modal.js:30"}, "properties": {"repobilityId": "15c9052b577c68d0", "scanner": "scanner-primary", "fingerprint": "dd4a62e7f649e849", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/utils/shortcuts-modal.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-a7ae524f865b95fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/components/error-banner.js:14"}, "properties": {"repobilityId": "e018d14e2e2942f6", "scanner": "scanner-primary", "fingerprint": "a7ae524f865b95fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/components/error-banner.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-0f1168be144a6c63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/unified-board.js:270"}, "properties": {"repobilityId": "2f37456265982d2b", "scanner": "scanner-primary", "fingerprint": "0f1168be144a6c63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/unified-board.js"}, "region": {"startLine": 270}}}]}, {"ruleId": "scanner-e7e71e12d86184a7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/combined-board.js:407"}, "properties": {"repobilityId": "654b06c5c4214323", "scanner": "scanner-primary", "fingerprint": "e7e71e12d86184a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/combined-board.js"}, "region": {"startLine": 407}}}]}, {"ruleId": "scanner-4fe819fd5ed9fd6b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/generalist-board.js:237"}, "properties": {"repobilityId": "ccf67fd8decc1ad5", "scanner": "scanner-primary", "fingerprint": "4fe819fd5ed9fd6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/generalist-board.js"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-08c187fd13da8920", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/scoring-system.js:48"}, "properties": {"repobilityId": "614ff62e80862094", "scanner": "scanner-primary", "fingerprint": "08c187fd13da8920", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/scoring-system.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-c0e9cc898da6104a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/category-map.js:22"}, "properties": {"repobilityId": "352f1b1bd0afd0ed", "scanner": "scanner-primary", "fingerprint": "c0e9cc898da6104a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/category-map.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-1e4c11e5b54342e0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/podium.js:195"}, "properties": {"repobilityId": "5594551aa02a0ddb", "scanner": "scanner-primary", "fingerprint": "1e4c11e5b54342e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/podium.js"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-538471baaf3ed280", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/hero.js:69"}, "properties": {"repobilityId": "734a022b0ab522ac", "scanner": "scanner-primary", "fingerprint": "538471baaf3ed280", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/hero.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-07a6a27ac88eba61", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/leaderboard-v2/index.js:74"}, "properties": {"repobilityId": "0cc410e5265aa469", "scanner": "scanner-primary", "fingerprint": "07a6a27ac88eba61", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/leaderboard-v2/index.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-5f1fc26ae62ad249", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/models.js:719"}, "properties": {"repobilityId": "21ccda6e18b364d8", "scanner": "scanner-primary", "fingerprint": "5f1fc26ae62ad249", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/model-profiler/models.js"}, "region": {"startLine": 719}}}]}, {"ruleId": "scanner-d42c72e126371802", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/index.js:152"}, "properties": {"repobilityId": "8758c8721f0bdabf", "scanner": "scanner-primary", "fingerprint": "d42c72e126371802", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/model-profiler/index.js"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-789501c6714f2135", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/hosts.js:461"}, "properties": {"repobilityId": "23e9b8e74e5dc4ec", "scanner": "scanner-primary", "fingerprint": "789501c6714f2135", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/model-profiler/hosts.js"}, "region": {"startLine": 461}}}]}, {"ruleId": "scanner-7a531128e197f885", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/model-profiler/deploy.js:213"}, "properties": {"repobilityId": "6d6a16f84076a619", "scanner": "scanner-primary", "fingerprint": "7a531128e197f885", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/model-profiler/deploy.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-172808e8c1ecc286", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in benchmark/public/js/model-profiler/components/profile-host-dialog.js:33"}, "properties": {"repobilityId": "c74bdb94a45a0f8d", "scanner": "scanner-primary", "fingerprint": "172808e8c1ecc286", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/model-profiler/components/profile-host-dialog.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-6153b57c67428ebd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark/scoring-profile.js:349"}, "properties": {"repobilityId": "dfdbf7ccd1f0b30a", "scanner": "scanner-primary", "fingerprint": "6153b57c67428ebd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark/scoring-profile.js"}, "region": {"startLine": 349}}}]}, {"ruleId": "scanner-edb1b1511e00a859", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/hero-picks.js:49"}, "properties": {"repobilityId": "b2ef39dc883ea6d1", "scanner": "scanner-primary", "fingerprint": "edb1b1511e00a859", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/efficiency-map/hero-picks.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-bbd6b5e533c6537f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/index.js:8"}, "properties": {"repobilityId": "da11301453c17c95", "scanner": "scanner-primary", "fingerprint": "bbd6b5e533c6537f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/efficiency-map/index.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-ef26ba7a6a2dda48", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/ranked-table.js:101"}, "properties": {"repobilityId": "93703b5291a404a2", "scanner": "scanner-primary", "fingerprint": "ef26ba7a6a2dda48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/efficiency-map/ranked-table.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-a81834c7b5baaec7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/efficiency-map/scatter-plot.js:21"}, "properties": {"repobilityId": "5c53e41ef0c4680e", "scanner": "scanner-primary", "fingerprint": "a81834c7b5baaec7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/efficiency-map/scatter-plot.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-fc0e280cbc018b4d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/anomalies.js:159"}, "properties": {"repobilityId": "d52b8c2028d6ae59", "scanner": "scanner-primary", "fingerprint": "fc0e280cbc018b4d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/anomalies.js"}, "region": {"startLine": 159}}}]}, {"ruleId": "scanner-13416f6aba4b8b65", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/model-arena.js:512"}, "properties": {"repobilityId": "1860f4efa2d9f2bd", "scanner": "scanner-primary", "fingerprint": "13416f6aba4b8b65", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/model-arena.js"}, "region": {"startLine": 512}}}]}, {"ruleId": "scanner-bc375e1ed102f50a", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in benchmark/public/js/benchmark-v2/model-arena.js:623"}, "properties": {"repobilityId": "6052e53063d15f97", "scanner": "scanner-primary", "fingerprint": "bc375e1ed102f50a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/model-arena.js"}, "region": {"startLine": 623}}}]}, {"ruleId": "scanner-267264c65ab50bff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/judge-roster.js:311"}, "properties": {"repobilityId": "ee5ebdcbb762d8e8", "scanner": "scanner-primary", "fingerprint": "267264c65ab50bff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/judge-roster.js"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-f6c5aee532236588", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/batch-card.js:19"}, "properties": {"repobilityId": "795415dd98d12ecd", "scanner": "scanner-primary", "fingerprint": "f6c5aee532236588", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/batch-card.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-90b67886bbde8259", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/live-detail.js:917"}, "properties": {"repobilityId": "939e6f0191a3a60d", "scanner": "scanner-primary", "fingerprint": "90b67886bbde8259", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/live-detail.js"}, "region": {"startLine": 917}}}]}, {"ruleId": "scanner-091aa5e1d98fe650", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/data-management.js:105"}, "properties": {"repobilityId": "11863749679f192b", "scanner": "scanner-primary", "fingerprint": "091aa5e1d98fe650", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/data-management.js"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-3cfd9d0e85b3a484", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/launch-summary.js:22"}, "properties": {"repobilityId": "65fd4b5c779a5518", "scanner": "scanner-primary", "fingerprint": "3cfd9d0e85b3a484", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/launch-summary.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-8ac4e2ca6b74e6a8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/action-zone.js:54"}, "properties": {"repobilityId": "f8e037dae2cfca4b", "scanner": "scanner-primary", "fingerprint": "8ac4e2ca6b74e6a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/action-zone.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-eaf2bcdd164f35af", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/batch-config.js:123"}, "properties": {"repobilityId": "32e98f74792efd3e", "scanner": "scanner-primary", "fingerprint": "eaf2bcdd164f35af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/batch-config.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-00a1e78a7bf5e2e9", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in benchmark/public/js/benchmark-v2/batch-config.js:174"}, "properties": {"repobilityId": "080252932f5200bb", "scanner": "scanner-primary", "fingerprint": "00a1e78a7bf5e2e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/batch-config.js"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-f50bab854ec91555", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/infrastructure.js:22"}, "properties": {"repobilityId": "5aefda9d46b8bf17", "scanner": "scanner-primary", "fingerprint": "f50bab854ec91555", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/infrastructure.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-82e98abf31afec3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/benchmark-v2/event-log.js:165"}, "properties": {"repobilityId": "52a93015f06ccb88", "scanner": "scanner-primary", "fingerprint": "82e98abf31afec3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/benchmark-v2/event-log.js"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-1f5d72e70d55e102", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/setup/index.js:99"}, "properties": {"repobilityId": "ed9390a7f2e9e233", "scanner": "scanner-primary", "fingerprint": "1f5d72e70d55e102", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/setup/index.js"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-6d33f56167fb7f3f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/gap-analysis.js:162"}, "properties": {"repobilityId": "d3b23e8f9d50a559", "scanner": "scanner-primary", "fingerprint": "6d33f56167fb7f3f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/gap-analysis.js"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-8062d8d1eba491f4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/detail-panel.js:881"}, "properties": {"repobilityId": "04884da529e1de1e", "scanner": "scanner-primary", "fingerprint": "8062d8d1eba491f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/detail-panel.js"}, "region": {"startLine": 881}}}]}, {"ruleId": "scanner-1cd4b93c5a95309d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/results-ledger.js:111"}, "properties": {"repobilityId": "f35e91f677ba51e2", "scanner": "scanner-primary", "fingerprint": "1cd4b93c5a95309d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/results-ledger.js"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-53ce63d89d21696d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/the-bench.js:143"}, "properties": {"repobilityId": "13d7d635b270a792", "scanner": "scanner-primary", "fingerprint": "53ce63d89d21696d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/the-bench.js"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-df003ea2e1c595f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/judge-roster.js:121"}, "properties": {"repobilityId": "f8cb27a9dd33260c", "scanner": "scanner-primary", "fingerprint": "df003ea2e1c595f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/judge-roster.js"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-31891c09f5755ad4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/judging-config.js:130"}, "properties": {"repobilityId": "4c7439e39c200081", "scanner": "scanner-primary", "fingerprint": "31891c09f5755ad4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/judging-config.js"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-14e2c8344078439d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/discrimination.js:91"}, "properties": {"repobilityId": "f4f9e9f7cc7a3f35", "scanner": "scanner-primary", "fingerprint": "14e2c8344078439d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/discrimination.js"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-a94fa3870b876fed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/hero.js:80"}, "properties": {"repobilityId": "03b78285d85a43c1", "scanner": "scanner-primary", "fingerprint": "a94fa3870b876fed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/hero.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-e55e78d444dd336a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/calibration.js:300"}, "properties": {"repobilityId": "1ebb6fcc968b2454", "scanner": "scanner-primary", "fingerprint": "e55e78d444dd336a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/calibration.js"}, "region": {"startLine": 300}}}]}, {"ruleId": "scanner-6873113ea76895a8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/index.js:41"}, "properties": {"repobilityId": "b8c5b4cefed22843", "scanner": "scanner-primary", "fingerprint": "6873113ea76895a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/index.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-de508d78c2e899c1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/review-queue.js:192"}, "properties": {"repobilityId": "739ae3e26441a05c", "scanner": "scanner-primary", "fingerprint": "de508d78c2e899c1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/review-queue.js"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-cb4fe3c018250c26", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in benchmark/public/js/courthouse-v2/test-library.js:55"}, "properties": {"repobilityId": "7cc8b70bc6946b5d", "scanner": "scanner-primary", "fingerprint": "cb4fe3c018250c26", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/public/js/courthouse-v2/test-library.js"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-a6b0752ff99a2f8b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/scripts/run-jest.js:1"}, "properties": {"repobilityId": "5da9cca841c97b74", "scanner": "scanner-primary", "fingerprint": "a6b0752ff99a2f8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/scripts/run-jest.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-214df630cbe66002", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/routes/operations.js:15"}, "properties": {"repobilityId": "b86c02b841d9cd33", "scanner": "scanner-primary", "fingerprint": "214df630cbe66002", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/routes/operations.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-e8a22ad43aa943ba", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/routes/cluster-schedule.js:242"}, "properties": {"repobilityId": "a4567b0be6110c84", "scanner": "scanner-primary", "fingerprint": "e8a22ad43aa943ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/routes/cluster-schedule.js"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-df3cdff14930500c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/databases.js:97"}, "properties": {"repobilityId": "96f27dce64718823", "scanner": "scanner-primary", "fingerprint": "df3cdff14930500c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/databases.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-c6819befe977929b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/network.js:40"}, "properties": {"repobilityId": "8645a010b5d64644", "scanner": "scanner-primary", "fingerprint": "c6819befe977929b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/network.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-a812b745be722f54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-hermes.js:46"}, "properties": {"repobilityId": "578fa766ed1ae6cb", "scanner": "scanner-primary", "fingerprint": "a812b745be722f54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-hermes.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-0e508ebd145daca8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/persona-selector.js:122"}, "properties": {"repobilityId": "fb3f070b871d2beb", "scanner": "scanner-primary", "fingerprint": "0e508ebd145daca8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/persona-selector.js"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-5306180ba8ff83cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-unified.js:89"}, "properties": {"repobilityId": "c846f991c9b51b01", "scanner": "scanner-primary", "fingerprint": "5306180ba8ff83cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/models-unified.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-151d55038a1c302c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-tasks.js:89"}, "properties": {"repobilityId": "505076ef591f8794", "scanner": "scanner-primary", "fingerprint": "151d55038a1c302c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-tasks.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-148ea68629c1c4c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-recommendations.js:67"}, "properties": {"repobilityId": "0a971575a28ca21a", "scanner": "scanner-primary", "fingerprint": "148ea68629c1c4c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/models-recommendations.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-ffc94aebe5496fd9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-inference.js:118"}, "properties": {"repobilityId": "b0ccb98906d8827c", "scanner": "scanner-primary", "fingerprint": "ffc94aebe5496fd9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-inference.js"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-b0825f71dc85d49b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/performance-page.js:304"}, "properties": {"repobilityId": "cbdbe049696554ce", "scanner": "scanner-primary", "fingerprint": "b0825f71dc85d49b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/performance-page.js"}, "region": {"startLine": 304}}}]}, {"ruleId": "scanner-fa17d7c529613f65", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-alerts.js:93"}, "properties": {"repobilityId": "ed5ead416ce55153", "scanner": "scanner-primary", "fingerprint": "fa17d7c529613f65", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-alerts.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-684660c0ebe3b31f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/buddy-explorer.js:47"}, "properties": {"repobilityId": "6a5741136cfcb9bf", "scanner": "scanner-primary", "fingerprint": "684660c0ebe3b31f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/buddy-explorer.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-974275ffc4c2919d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/roundtable.js:67"}, "properties": {"repobilityId": "4ed5332de6a6d26f", "scanner": "scanner-primary", "fingerprint": "974275ffc4c2919d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/roundtable.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-56447f8d6243bcc2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/janitor-profiles.js:65"}, "properties": {"repobilityId": "01770ecc3c49d5ce", "scanner": "scanner-primary", "fingerprint": "56447f8d6243bcc2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/janitor-profiles.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-d39af65f8ca456bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-rag.js:81"}, "properties": {"repobilityId": "37347a6951081b2b", "scanner": "scanner-primary", "fingerprint": "d39af65f8ca456bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-rag.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-7fd3bee8476ea978", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/analytics-cost.js:253"}, "properties": {"repobilityId": "aed47a8e16108175", "scanner": "scanner-primary", "fingerprint": "7fd3bee8476ea978", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/analytics-cost.js"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-585f766bd24a3855", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/files.js:124"}, "properties": {"repobilityId": "53af7bcb10bfd8d5", "scanner": "scanner-primary", "fingerprint": "585f766bd24a3855", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/files.js"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-162f641b4062302a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-execution-config.js:76"}, "properties": {"repobilityId": "06f24b37d884f1c7", "scanner": "scanner-primary", "fingerprint": "162f641b4062302a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/models-execution-config.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-6dddfe7d3c5d625e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-performance.js:10"}, "properties": {"repobilityId": "578270de14f9fff7", "scanner": "scanner-primary", "fingerprint": "6dddfe7d3c5d625e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-performance.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-78fe0a22c082386b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/voice.js:28"}, "properties": {"repobilityId": "f6985ec78ba86fb5", "scanner": "scanner-primary", "fingerprint": "78fe0a22c082386b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/voice.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-eff705117b19b54d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/cluster-schedule.js:115"}, "properties": {"repobilityId": "84d06ed0dccb0928", "scanner": "scanner-primary", "fingerprint": "eff705117b19b54d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/cluster-schedule.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-b002eb3ae6ac8784", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/models-comparison.js:69"}, "properties": {"repobilityId": "d7f95872d60f7595", "scanner": "scanner-primary", "fingerprint": "b002eb3ae6ac8784", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/models-comparison.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-8719c3ee88055118", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-health.js:10"}, "properties": {"repobilityId": "9c762ec5ef8e8fea", "scanner": "scanner-primary", "fingerprint": "8719c3ee88055118", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-health.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-484a3a1b092a5781", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/janitor.js:40"}, "properties": {"repobilityId": "bd8db4f60558585f", "scanner": "scanner-primary", "fingerprint": "484a3a1b092a5781", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/janitor.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-fc4c09fbc3bf8475", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/buddy-page.js:46"}, "properties": {"repobilityId": "ea4f5919a6bd44a7", "scanner": "scanner-primary", "fingerprint": "fc4c09fbc3bf8475", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/buddy-page.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-886db5cf83b4e512", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/cluster-schedule-services.js:27"}, "properties": {"repobilityId": "73b7f92d238e3424", "scanner": "scanner-primary", "fingerprint": "886db5cf83b4e512", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/cluster-schedule-services.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-0ff7599c91517827", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-cluster.js:652"}, "properties": {"repobilityId": "26925dc15284e377", "scanner": "scanner-primary", "fingerprint": "0ff7599c91517827", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-cluster.js"}, "region": {"startLine": 652}}}]}, {"ruleId": "scanner-00db2c1cdb23d9b6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/live-data-dashboard.js:77"}, "properties": {"repobilityId": "4c74ae0bbf42bfe8", "scanner": "scanner-primary", "fingerprint": "00db2c1cdb23d9b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/live-data-dashboard.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-24a5de8c4d7b9356", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-inference-health.js:323"}, "properties": {"repobilityId": "71f9912dc09d7473", "scanner": "scanner-primary", "fingerprint": "24a5de8c4d7b9356", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-inference-health.js"}, "region": {"startLine": 323}}}]}, {"ruleId": "scanner-e4c056b8648f6071", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-routing.js:608"}, "properties": {"repobilityId": "9adacd439c4f41d4", "scanner": "scanner-primary", "fingerprint": "e4c056b8648f6071", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-routing.js"}, "region": {"startLine": 608}}}]}, {"ruleId": "scanner-2df7a5e67d05fc2e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/performance-baselines.js:34"}, "properties": {"repobilityId": "aaa5b621ae51f48c", "scanner": "scanner-primary", "fingerprint": "2df7a5e67d05fc2e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/performance-baselines.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-514ed1a7d7a43f75", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/nerve-center-openclaw.js:72"}, "properties": {"repobilityId": "bff89a107304f094", "scanner": "scanner-primary", "fingerprint": "514ed1a7d7a43f75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/nerve-center-openclaw.js"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-205cca1dc33e685d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/storage.js:91"}, "properties": {"repobilityId": "1329bf5275ccd7a0", "scanner": "scanner-primary", "fingerprint": "205cca1dc33e685d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/storage.js"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-a6425b310eb66043", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/backup.js:47"}, "properties": {"repobilityId": "c40918760d36d10d", "scanner": "scanner-primary", "fingerprint": "a6425b310eb66043", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/backup.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-277bcb04f28b0c6d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/docjanitor.js:69"}, "properties": {"repobilityId": "24de7693554bc739", "scanner": "scanner-primary", "fingerprint": "277bcb04f28b0c6d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/docjanitor.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-3f6d15e4643b18d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/utils/dom-utils.js:21"}, "properties": {"repobilityId": "fea3b451b30b0dd2", "scanner": "scanner-primary", "fingerprint": "3f6d15e4643b18d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/utils/dom-utils.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-bb8adb70ccefd1fb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/utils/shortcuts-modal.js:53"}, "properties": {"repobilityId": "6e0605efb7a0f884", "scanner": "scanner-primary", "fingerprint": "bb8adb70ccefd1fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/utils/shortcuts-modal.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-b6add35c14a2eb3d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/AgentListView.js:112"}, "properties": {"repobilityId": "04055fe4289d17ac", "scanner": "scanner-primary", "fingerprint": "b6add35c14a2eb3d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/components/AgentListView.js"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-255c56fbf4744e61", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in core/public/js/components/AgentListView.js:272"}, "properties": {"repobilityId": "3b5ee63f35d9bd4d", "scanner": "scanner-primary", "fingerprint": "255c56fbf4744e61", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/components/AgentListView.js"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-39d7190b813e7daf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/buddy.js:348"}, "properties": {"repobilityId": "566676e2f8e31604", "scanner": "scanner-primary", "fingerprint": "39d7190b813e7daf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/components/buddy.js"}, "region": {"startLine": 348}}}]}, {"ruleId": "scanner-71a9d93128c4f96a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/buddy-minichat.js:90"}, "properties": {"repobilityId": "dcc4d95faa565271", "scanner": "scanner-primary", "fingerprint": "71a9d93128c4f96a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/components/buddy-minichat.js"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-9a333a5fa178635d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/components/chat-intelligence.js:123"}, "properties": {"repobilityId": "0f0c0763e922acc9", "scanner": "scanner-primary", "fingerprint": "9a333a5fa178635d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/components/chat-intelligence.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-e535cfd579249633", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-profile.js:87"}, "properties": {"repobilityId": "1e488962029289b8", "scanner": "scanner-primary", "fingerprint": "e535cfd579249633", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/chat/chat-profile.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-590945d2f19d7e0b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-main.js:184"}, "properties": {"repobilityId": "19a9ad46c31aa0b2", "scanner": "scanner-primary", "fingerprint": "590945d2f19d7e0b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/chat/chat-main.js"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-9bf0bcd1333afff6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-agents.js:130"}, "properties": {"repobilityId": "06ab6ec50d9a782f", "scanner": "scanner-primary", "fingerprint": "9bf0bcd1333afff6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/chat/chat-agents.js"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-b66c0e70af4c9efd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-history.js:13"}, "properties": {"repobilityId": "244e478a9243f8f3", "scanner": "scanner-primary", "fingerprint": "b66c0e70af4c9efd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/chat/chat-history.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-2bedf132580136aa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-messaging.js:81"}, "properties": {"repobilityId": "94e59b44423cfcba", "scanner": "scanner-primary", "fingerprint": "2bedf132580136aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/chat/chat-messaging.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-d190c68b7d392d6b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in core/public/js/chat/chat-config.js:540"}, "properties": {"repobilityId": "5030dda6123e5b25", "scanner": "scanner-primary", "fingerprint": "d190c68b7d392d6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/js/chat/chat-config.js"}, "region": {"startLine": 540}}}]}, {"ruleId": "scanner-c97ec2d21437af60", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/public/host-agent/agent.js:4"}, "properties": {"repobilityId": "5bda4eef469d2d1a", "scanner": "scanner-primary", "fingerprint": "c97ec2d21437af60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/public/host-agent/agent.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-9d16193dec797fbf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/src/services/backupService.js:9"}, "properties": {"repobilityId": "153b21926a76c90c", "scanner": "scanner-primary", "fingerprint": "9d16193dec797fbf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/src/services/backupService.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-62466a9073cab03f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/src/services/ollamaVramService.js:1"}, "properties": {"repobilityId": "952c9a217ba74b27", "scanner": "scanner-primary", "fingerprint": "62466a9073cab03f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/src/services/ollamaVramService.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7476e050b327fe8d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/src/services/memoryAdapters.js:7"}, "properties": {"repobilityId": "18b661e2ca0685c5", "scanner": "scanner-primary", "fingerprint": "7476e050b327fe8d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/src/services/memoryAdapters.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-dd91807fc02877e8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in core/src/services/customModelService.js:4"}, "properties": {"repobilityId": "e6c514f769c81360", "scanner": "scanner-primary", "fingerprint": "dd91807fc02877e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/src/services/customModelService.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-fe2479a4e31cdcd1", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in core/src/services/openclawClient.js:182"}, "properties": {"repobilityId": "0e5fe81d4a579162", "scanner": "scanner-primary", "fingerprint": "fe2479a4e31cdcd1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "core/src/services/openclawClient.js"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-abc839b3cac14aa0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2d797e31d5219c8c", "scanner": "scanner-primary", "fingerprint": "abc839b3cac14aa0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/.github/workflows/release.yml"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-abc839b3cac14aa0", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b38c7224c559df53", "scanner": "scanner-primary", "fingerprint": "abc839b3cac14aa0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/.github/workflows/release.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-08fb0a8bd4dff1b0", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "699413e573eb265a", "scanner": "scanner-primary", "fingerprint": "08fb0a8bd4dff1b0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mc/.github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6b31fb89bd0ab53e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d51e2361e601648e", "scanner": "scanner-primary", "fingerprint": "6b31fb89bd0ab53e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pr-ci.yml"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-9cdc8abff1116715", "level": "note", "message": {"text": "Very large file: mc/src/components/skills-view.tsx (1768 lines)"}, "properties": {"repobilityId": "6160662fa9e8573c", "scanner": "scanner-primary", "fingerprint": "9cdc8abff1116715", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bef012cc9c27bb19", "level": "note", "message": {"text": "Very large file: mc/src/components/integrations-view.tsx (1933 lines)"}, "properties": {"repobilityId": "1bd6bbb5748c3fcb", "scanner": "scanner-primary", "fingerprint": "bef012cc9c27bb19", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7b431661ba8ddbee", "level": "note", "message": {"text": "Very large file: mc/src/components/audio-view.tsx (1882 lines)"}, "properties": {"repobilityId": "5c8401ebf9cdcb6f", "scanner": "scanner-primary", "fingerprint": "7b431661ba8ddbee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6d214e4fd9864936", "level": "note", "message": {"text": "Very large file: mc/src/components/cron-view.tsx (3427 lines)"}, "properties": {"repobilityId": "fd2411417b8b32e7", "scanner": "scanner-primary", "fingerprint": "6d214e4fd9864936", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f34794aca8c7737", "level": "note", "message": {"text": "Very large file: mc/src/components/dashboard-view.tsx (1636 lines)"}, "properties": {"repobilityId": "fe540b4912be1429", "scanner": "scanner-primary", "fingerprint": "7f34794aca8c7737", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-718a23626d0cdfb5", "level": "note", "message": {"text": "Very large file: mc/src/components/security-view.tsx (1561 lines)"}, "properties": {"repobilityId": "0fb75426676bd7b4", "scanner": "scanner-primary", "fingerprint": "718a23626d0cdfb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d428b06b57c92f7a", "level": "note", "message": {"text": "Very large file: mc/src/components/memory-graph-view.tsx (2069 lines)"}, "properties": {"repobilityId": "5348202d8fd59c5b", "scanner": "scanner-primary", "fingerprint": "d428b06b57c92f7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-af1ea7fe0cdadd6f", "level": "note", "message": {"text": "Very large file: mc/src/components/onboarding-wizard.tsx (1605 lines)"}, "properties": {"repobilityId": "36c1d0030528b37b", "scanner": "scanner-primary", "fingerprint": "af1ea7fe0cdadd6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-75227f3147b687ef", "level": "note", "message": {"text": "Very large file: mc/src/components/vector-view.tsx (1107 lines)"}, "properties": {"repobilityId": "8895dd99704d88f1", "scanner": "scanner-primary", "fingerprint": "75227f3147b687ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d544a34afc51f38e", "level": "note", "message": {"text": "Very large file: mc/src/components/agents-view.tsx (4836 lines)"}, "properties": {"repobilityId": "bbc4d98330093b75", "scanner": "scanner-primary", "fingerprint": "d544a34afc51f38e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-954f3fda62bd3202", "level": "note", "message": {"text": "Very large file: mc/src/components/chat-view.tsx (1444 lines)"}, "properties": {"repobilityId": "a5d5a9fa1888d8b9", "scanner": "scanner-primary", "fingerprint": "954f3fda62bd3202", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-94c09ca567e076b7", "level": "note", "message": {"text": "Very large file: mc/src/components/docs-view.tsx (1322 lines)"}, "properties": {"repobilityId": "805739647d459477", "scanner": "scanner-primary", "fingerprint": "94c09ca567e076b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cb817daed0aa8cb6", "level": "note", "message": {"text": "Very large file: mc/src/components/memory-view.tsx (1701 lines)"}, "properties": {"repobilityId": "bda5f472757bd976", "scanner": "scanner-primary", "fingerprint": "cb817daed0aa8cb6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-73f4c5aa36e98096", "level": "note", "message": {"text": "Very large file: mc/src/components/models-view.tsx (1909 lines)"}, "properties": {"repobilityId": "da4b6ec71a584e1d", "scanner": "scanner-primary", "fingerprint": "73f4c5aa36e98096", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-01e68a4e2aa78db9", "level": "note", "message": {"text": "Very large file: mc/src/components/tasks-view.tsx (1624 lines)"}, "properties": {"repobilityId": "ef04aba19d7557ea", "scanner": "scanner-primary", "fingerprint": "01e68a4e2aa78db9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fd1cc715b6a8eb41", "level": "note", "message": {"text": "Very large file: mc/src/components/heartbeat-manager.tsx (1571 lines)"}, "properties": {"repobilityId": "a15dbd8bb15e2f60", "scanner": "scanner-primary", "fingerprint": "fd1cc715b6a8eb41", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9af490767e868028", "level": "note", "message": {"text": "Very large file: mc/src/components/config-editor.tsx (2072 lines)"}, "properties": {"repobilityId": "ce71cf9530ab8b4e", "scanner": "scanner-primary", "fingerprint": "9af490767e868028", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-115729b515ebe673", "level": "note", "message": {"text": "Very large file: benchmark/tests/integration/benchmark.test.js (2352 lines)"}, "properties": {"repobilityId": "41baf54ae12ab6bb", "scanner": "scanner-primary", "fingerprint": "115729b515ebe673", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3398e44b4f0052c5", "level": "note", "message": {"text": "Very large file: benchmark/public/js/model-profiler/models.js (2029 lines)"}, "properties": {"repobilityId": "e51a6801e1605b90", "scanner": "scanner-primary", "fingerprint": "3398e44b4f0052c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-278afc8330fa124e", "level": "note", "message": {"text": "Very large file: benchmark/public/js/benchmark-v2/batch-config.js (1797 lines)"}, "properties": {"repobilityId": "e7d7c3f6522f6dba", "scanner": "scanner-primary", "fingerprint": "278afc8330fa124e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1739c7d09e170c0", "level": "note", "message": {"text": "Very large file: core/public/js/cluster-schedule.js (1158 lines)"}, "properties": {"repobilityId": "694682635e940d56", "scanner": "scanner-primary", "fingerprint": "d1739c7d09e170c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d53e6fc6e96b42a4", "level": "note", "message": {"text": "43 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "d53e6fc6e96b42a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "252dd1725ee7d383", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "da20d007f3c5452e", "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": "d0124df9398614c0", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "0eb3ffb58ba8e3c8", "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": "c9a1064b76ff6e5c", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-e6cdbc23881055e3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/search-modal.tsx:228"}, "properties": {"repobilityId": "c2dfc05659f4b12c", "scanner": "scanner-primary", "fingerprint": "e6cdbc23881055e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9fa8a79b63a6ad08", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/skills-view.tsx:1601"}, "properties": {"repobilityId": "33ef2fb076931af7", "scanner": "scanner-primary", "fingerprint": "9fa8a79b63a6ad08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0f4668498c677185", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/audio-view.tsx:1301"}, "properties": {"repobilityId": "a6cd8b79020c8a75", "scanner": "scanner-primary", "fingerprint": "0f4668498c677185", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e057be64ee9d93f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/cron-view.tsx:2424"}, "properties": {"repobilityId": "f58ceb808388a13f", "scanner": "scanner-primary", "fingerprint": "e057be64ee9d93f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-197126b4baaf7dfa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/header.tsx:433"}, "properties": {"repobilityId": "83edf9628c739e56", "scanner": "scanner-primary", "fingerprint": "197126b4baaf7dfa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-773ae6289fd010be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/onboarding-wizard.tsx:283"}, "properties": {"repobilityId": "f32fcb91729d126f", "scanner": "scanner-primary", "fingerprint": "773ae6289fd010be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea746f083e219d3b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/vector-view.tsx:582"}, "properties": {"repobilityId": "3d71cf3f45b90f90", "scanner": "scanner-primary", "fingerprint": "ea746f083e219d3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af5ccaca00b2e199", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/agents-view.tsx:2640"}, "properties": {"repobilityId": "f95f9d14b1831c96", "scanner": "scanner-primary", "fingerprint": "af5ccaca00b2e199", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-188f3a9fedd65aa9", "level": "none", "message": {"text": "Commented-code block (5 lines) in mc/src/components/chat-view.tsx:395"}, "properties": {"repobilityId": "939f46a4dbef4776", "scanner": "scanner-primary", "fingerprint": "188f3a9fedd65aa9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57294108f6be6abd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/chat-view.tsx:1215"}, "properties": {"repobilityId": "7496119d280ad184", "scanner": "scanner-primary", "fingerprint": "57294108f6be6abd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5d95c609cf6fec93", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/docs-view.tsx:430"}, "properties": {"repobilityId": "0f0624e1dd3f2768", "scanner": "scanner-primary", "fingerprint": "5d95c609cf6fec93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ec78699bd65e4f62", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/memory-view.tsx:289"}, "properties": {"repobilityId": "011df368be68f67d", "scanner": "scanner-primary", "fingerprint": "ec78699bd65e4f62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f52824ff138e7de", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/subagents-manager-view.tsx:358"}, "properties": {"repobilityId": "2fcb7eaf11594839", "scanner": "scanner-primary", "fingerprint": "9f52824ff138e7de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-513bfee93a6a9a1c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/tasks-view.tsx:269"}, "properties": {"repobilityId": "2aeb15b321e5abee", "scanner": "scanner-primary", "fingerprint": "513bfee93a6a9a1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b11f6549f5e532f6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/heartbeat-manager.tsx:851"}, "properties": {"repobilityId": "a5a6e5b35945bc56", "scanner": "scanner-primary", "fingerprint": "b11f6549f5e532f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e754875c405c87dd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/components/config-editor.tsx:1625"}, "properties": {"repobilityId": "966c5698f600032e", "scanner": "scanner-primary", "fingerprint": "e754875c405c87dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-39ab4b24ae20fc24", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/google-calendar.ts:80"}, "properties": {"repobilityId": "1c30ec763f6ba412", "scanner": "scanner-primary", "fingerprint": "39ab4b24ae20fc24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f4209121bff87aa", "level": "note", "message": {"text": "Legacy-named symbol `_notifyLegacy` in mc/src/lib/chat-store.ts:39"}, "properties": {"repobilityId": "ce2819741b488dba", "scanner": "scanner-primary", "fingerprint": "1f4209121bff87aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0fab73aa30fad12b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/transports/http-transport.ts:202"}, "properties": {"repobilityId": "da16e7d5c878bc49", "scanner": "scanner-primary", "fingerprint": "0fab73aa30fad12b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-68981f3d5992e4a7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mc/src/lib/transports/cli-transport.ts:68"}, "properties": {"repobilityId": "5558063bfe6caae6", "scanner": "scanner-primary", "fingerprint": "68981f3d5992e4a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-864bf86d20f5d94e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/corpus-runner-0127.js:37"}, "properties": {"repobilityId": "81a59c49595743f4", "scanner": "scanner-primary", "fingerprint": "864bf86d20f5d94e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-38c6a0a07b4bdd2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/documents.js:44"}, "properties": {"repobilityId": "2e8e083d2c982571", "scanner": "scanner-primary", "fingerprint": "38c6a0a07b4bdd2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f5e679f59c2219e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/dashboard.js:107"}, "properties": {"repobilityId": "8c0e234fe6b38dfb", "scanner": "scanner-primary", "fingerprint": "9f5e679f59c2219e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-87825328d165ec25", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 rag/public/js/api.js:19"}, "properties": {"repobilityId": "fde0605b3a1e4de0", "scanner": "scanner-primary", "fingerprint": "87825328d165ec25", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59b9afca364c3a09", "level": "none", "message": {"text": "Commented-code block (7 lines) in rag/src/services/ragStore.js:64"}, "properties": {"repobilityId": "8e886f3b4704827e", "scanner": "scanner-primary", "fingerprint": "59b9afca364c3a09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac45a163978db26b", "level": "none", "message": {"text": "Commented-code block (5 lines) in rag/src/services/embeddings.js:33"}, "properties": {"repobilityId": "de404b35f17c2cf7", "scanner": "scanner-primary", "fingerprint": "ac45a163978db26b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecf49c961c61839b", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/server.js:301"}, "properties": {"repobilityId": "b3907856aa336d59", "scanner": "scanner-primary", "fingerprint": "ecf49c961c61839b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ebf8d91f942bfd2", "level": "none", "message": {"text": "Commented-code block (10 lines) in benchmark/models/BenchmarkPrompt.js:127"}, "properties": {"repobilityId": "4fe4dd6edf7c770e", "scanner": "scanner-primary", "fingerprint": "2ebf8d91f942bfd2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02aa3abdae69ab99", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/models/JudgeGroundTruth.js:69"}, "properties": {"repobilityId": "6effe18a4494fd12", "scanner": "scanner-primary", "fingerprint": "02aa3abdae69ab99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3035588149a832ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/models/BenchmarkResult.js:296"}, "properties": {"repobilityId": "2fa22ea73c76d305", "scanner": "scanner-primary", "fingerprint": "3035588149a832ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7955e23944fe86eb", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmark/tests/unit/extractThinkingBlocks.test.js:27"}, "properties": {"repobilityId": "85e1bb4ad0910ef2", "scanner": "scanner-primary", "fingerprint": "7955e23944fe86eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e51e62d7429a97c", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/judgeCall.test.js:108"}, "properties": {"repobilityId": "7147909eb8d53eda", "scanner": "scanner-primary", "fingerprint": "5e51e62d7429a97c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32a10961da57dfe9", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/judgeFeedbackLoop.test.js:201"}, "properties": {"repobilityId": "c4b2007f4500cdbb", "scanner": "scanner-primary", "fingerprint": "32a10961da57dfe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6e9b58cc03f32c6", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/tests/unit/scoring/scorerCountEnforcement0149.test.js:109"}, "properties": {"repobilityId": "12075776e5c086e0", "scanner": "scanner-primary", "fingerprint": "c6e9b58cc03f32c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-933cdd3266f276c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/reasoningFormatGate0138.test.js:117"}, "properties": {"repobilityId": "974720a2687c8885", "scanner": "scanner-primary", "fingerprint": "933cdd3266f276c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ba22edc77152672", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/instructionFormatGate0144.test.js:64"}, "properties": {"repobilityId": "6103e4928e06ae37", "scanner": "scanner-primary", "fingerprint": "1ba22edc77152672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85a58c85d2076ec1", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/tests/unit/scoring/dimensionWeightWiring.test.js:210"}, "properties": {"repobilityId": "019369c81d93fcb9", "scanner": "scanner-primary", "fingerprint": "85a58c85d2076ec1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f782aa5928585a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/scripts/verify0111LiveBatch.js:60"}, "properties": {"repobilityId": "b9decd456fd748e5", "scanner": "scanner-primary", "fingerprint": "0f782aa5928585a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0887971d712b5ad1", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/routes/profiler/pipeline.js:144"}, "properties": {"repobilityId": "5df062ebb1482143", "scanner": "scanner-primary", "fingerprint": "0887971d712b5ad1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99478bf7de3809bd", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmark/routes/benchmark/core.js:81"}, "properties": {"repobilityId": "4f305eb1f5731232", "scanner": "scanner-primary", "fingerprint": "99478bf7de3809bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c937f51cd7add75", "level": "none", "message": {"text": "Commented-code block (8 lines) in benchmark/public/js/components/raw-response.js:3"}, "properties": {"repobilityId": "2f2a441fa1321bbc", "scanner": "scanner-primary", "fingerprint": "0c937f51cd7add75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe3c4a841681b50b", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/public/js/model-profiler/models.js:901"}, "properties": {"repobilityId": "ee7d408ad33137b6", "scanner": "scanner-primary", "fingerprint": "fe3c4a841681b50b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c188ae022dc9ccea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/model-profiler/components/readiness-cache.js:12"}, "properties": {"repobilityId": "f63f982b65128371", "scanner": "scanner-primary", "fingerprint": "c188ae022dc9ccea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b3e1ee88fc3e27f6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/benchmark/scoring-profile.js:31"}, "properties": {"repobilityId": "b663f0eacdc9dc26", "scanner": "scanner-primary", "fingerprint": "b3e1ee88fc3e27f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c7190d4eb5e960ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/public/js/benchmark-v2/helpers.js:35"}, "properties": {"repobilityId": "c74b6a2b5bc71f6e", "scanner": "scanner-primary", "fingerprint": "c7190d4eb5e960ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dc107fdf697d7de", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/public/js/benchmark-v2/live-detail.js:5"}, "properties": {"repobilityId": "58b363f78843e715", "scanner": "scanner-primary", "fingerprint": "8dc107fdf697d7de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3f80d0ab98c2abe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/public/js/benchmark-v2/data-management.js:36"}, "properties": {"repobilityId": "598bddb478019c1b", "scanner": "scanner-primary", "fingerprint": "e3f80d0ab98c2abe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-88978de61dc192db", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/public/js/benchmark-v2/batch-config.js:81"}, "properties": {"repobilityId": "112a3d36bb4f6781", "scanner": "scanner-primary", "fingerprint": "88978de61dc192db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e90c279bf3f515ad", "level": "none", "message": {"text": "Commented-code block (8 lines) in benchmark/public/js/courthouse-v2/index.js:3"}, "properties": {"repobilityId": "d67663346eb55add", "scanner": "scanner-primary", "fingerprint": "e90c279bf3f515ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-438815f3edd3bd14", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/judgeConfidence.js:373"}, "properties": {"repobilityId": "50c14c25c621ca2b", "scanner": "scanner-primary", "fingerprint": "438815f3edd3bd14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfd240520ef158b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/src/services/qualityScorer.js:71"}, "properties": {"repobilityId": "3d4a7de6e1c0821a", "scanner": "scanner-primary", "fingerprint": "dfd240520ef158b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58410dd96bd5cf4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/judgeValidation.js:78"}, "properties": {"repobilityId": "4729ee623405e227", "scanner": "scanner-primary", "fingerprint": "58410dd96bd5cf4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0810b8f1f73d7e01", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmark/src/services/hostTestService.js:26"}, "properties": {"repobilityId": "fc9f1cad60920437", "scanner": "scanner-primary", "fingerprint": "0810b8f1f73d7e01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ec678d5c8bd1f6b", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/contextProbeService.js:262"}, "properties": {"repobilityId": "18d8524c84b4796a", "scanner": "scanner-primary", "fingerprint": "7ec678d5c8bd1f6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63d0f4b4b65d26ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/modelContextResolver.js:43"}, "properties": {"repobilityId": "019e92fda48aa753", "scanner": "scanner-primary", "fingerprint": "63d0f4b4b65d26ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e83fd5de84d6e72f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/referenceScorer.js:101"}, "properties": {"repobilityId": "031943eb8c250b2e", "scanner": "scanner-primary", "fingerprint": "e83fd5de84d6e72f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6eacf225d0b79196", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/decomposedJudge.js:126"}, "properties": {"repobilityId": "b0c1065d9e74f3a7", "scanner": "scanner-primary", "fingerprint": "6eacf225d0b79196", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a02c880b07b62a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/decomposedJudge.js:153"}, "properties": {"repobilityId": "8e15df5cafa70980", "scanner": "scanner-primary", "fingerprint": "5a02c880b07b62a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-73f03a49771604f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/profiler/adaptedModelResolver.js:31"}, "properties": {"repobilityId": "961d3cc9a253cee1", "scanner": "scanner-primary", "fingerprint": "73f03a49771604f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7f77de22e544bae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/profiler/liveProbeService.js:57"}, "properties": {"repobilityId": "7d4a0cb23b61ca0b", "scanner": "scanner-primary", "fingerprint": "a7f77de22e544bae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76fb3a41a660f41e", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/src/services/profiler/adaptationService.js:131"}, "properties": {"repobilityId": "c3815748d3ae056b", "scanner": "scanner-primary", "fingerprint": "76fb3a41a660f41e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa38606f11dcba40", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/src/services/profiler/profilerOrchestrator.js:257"}, "properties": {"repobilityId": "ca966db571e3ea61", "scanner": "scanner-primary", "fingerprint": "aa38606f11dcba40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bbfe28e7e8614eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/scoring/judgeCall.js:22"}, "properties": {"repobilityId": "ca6c99a53ea7d2b1", "scanner": "scanner-primary", "fingerprint": "1bbfe28e7e8614eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04e07e662255c32d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/scoring/judgeCall.js:287"}, "properties": {"repobilityId": "3901ab9945d0b162", "scanner": "scanner-primary", "fingerprint": "04e07e662255c32d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-edac2f201e023e0f", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/scoring/compositeScorer.js:9"}, "properties": {"repobilityId": "7b49aaa5b1512cdc", "scanner": "scanner-primary", "fingerprint": "edac2f201e023e0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-798010bfd12deae7", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/scoring/scoringConfigs.js:69"}, "properties": {"repobilityId": "c328b6a20f7d0bd7", "scanner": "scanner-primary", "fingerprint": "798010bfd12deae7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-749b37ac8a054d79", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/benchmark/generalistScore.js:59"}, "properties": {"repobilityId": "9717d9ec11a08f68", "scanner": "scanner-primary", "fingerprint": "749b37ac8a054d79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-974fb8c01e8162c8", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmark/src/services/benchmark/batches.js:474"}, "properties": {"repobilityId": "e6feeca6b4bf6098", "scanner": "scanner-primary", "fingerprint": "974fb8c01e8162c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a959e25f83fac8dc", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmark/src/services/benchmark/retroCalibration.js:103"}, "properties": {"repobilityId": "382c42aaf6c3d09e", "scanner": "scanner-primary", "fingerprint": "a959e25f83fac8dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6487fa00f2f3b419", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmark/src/services/benchmark/testExecution.js:66"}, "properties": {"repobilityId": "3e566afebdb69729", "scanner": "scanner-primary", "fingerprint": "6487fa00f2f3b419", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e27a2b46712bff56", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmark/src/services/benchmark/index.js:148"}, "properties": {"repobilityId": "fd09c5d8f469221d", "scanner": "scanner-primary", "fingerprint": "e27a2b46712bff56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9989260f57e8b814", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/benchmark/modelWarmup.js:17"}, "properties": {"repobilityId": "e4dba244ae44e738", "scanner": "scanner-primary", "fingerprint": "9989260f57e8b814", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e16cf89bdbf7798", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmark/src/services/benchmark/batchOrchestrator.js:9"}, "properties": {"repobilityId": "dd6ff29c714f869e", "scanner": "scanner-primary", "fingerprint": "0e16cf89bdbf7798", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efb5285e76fdc90c", "level": "none", "message": {"text": "Commented-code block (9 lines) in benchmark/src/services/benchmark/judgeOrchestration.js:45"}, "properties": {"repobilityId": "d411079df40227d9", "scanner": "scanner-primary", "fingerprint": "efb5285e76fdc90c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b0b3965cd29d7bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmark/src/services/benchmark/batchHelpers.js:130"}, "properties": {"repobilityId": "b4bc7e5b6dc65b16", "scanner": "scanner-primary", "fingerprint": "3b0b3965cd29d7bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a6779856ce59166", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/server.js:261"}, "properties": {"repobilityId": "3fecb9c0420689df", "scanner": "scanner-primary", "fingerprint": "5a6779856ce59166", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f55d74bbce76d5d3", "level": "note", "message": {"text": "Legacy-named symbol `nDeprecated` in core/models/CustomModel.js:338"}, "properties": {"repobilityId": "b978823dc61aa477", "scanner": "scanner-primary", "fingerprint": "f55d74bbce76d5d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0a5f7a3577605894", "level": "none", "message": {"text": "Commented-code block (11 lines) in core/models/HostPreference.js:114"}, "properties": {"repobilityId": "41b9a68fb947b2ee", "scanner": "scanner-primary", "fingerprint": "0a5f7a3577605894", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26fa63f5d60c7691", "level": "note", "message": {"text": "Legacy-named symbol `nDeprecated` in core/models/ModelRegistry.js:460"}, "properties": {"repobilityId": "e56fc7b32a161be3", "scanner": "scanner-primary", "fingerprint": "26fa63f5d60c7691", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6df834ac0ca44f5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/models/Conversation.js:66"}, "properties": {"repobilityId": "f02e303dfdbb3489", "scanner": "scanner-primary", "fingerprint": "6df834ac0ca44f5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5c1f48eaa829995", "level": "none", "message": {"text": "Commented-code block (7 lines) in core/tests/test-server.js:58"}, "properties": {"repobilityId": "de50df200a2e1e83", "scanner": "scanner-primary", "fingerprint": "a5c1f48eaa829995", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6513cb6e81f02651", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/tests/models/Conversation.test.js:9"}, "properties": {"repobilityId": "fc5d112f8621eab9", "scanner": "scanner-primary", "fingerprint": "6513cb6e81f02651", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7500743b214643f", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/tests/unit/hostPreferenceService.test.js:444"}, "properties": {"repobilityId": "d4e98d90d3a33fb1", "scanner": "scanner-primary", "fingerprint": "e7500743b214643f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10b118a8fcbeed3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/tests/middleware/internalCallerLimiter.test.js:35"}, "properties": {"repobilityId": "62d02377dd0c7311", "scanner": "scanner-primary", "fingerprint": "10b118a8fcbeed3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c08a31b7042aec0", "level": "note", "message": {"text": "Legacy-named symbol `dropLegacy` in core/scripts/migrate-pinned-models.js:27"}, "properties": {"repobilityId": "d9ba573193e87a0e", "scanner": "scanner-primary", "fingerprint": "6c08a31b7042aec0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d1b9a52d6c2e59fc", "level": "note", "message": {"text": "Legacy-named symbol `foundLegacy` in core/routes/nerve-center-host-preferences.js:367"}, "properties": {"repobilityId": "89cd797a2ddbccf7", "scanner": "scanner-primary", "fingerprint": "d1b9a52d6c2e59fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0446ad613746e2a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/routes/nerve-center-host-preferences.js:361"}, "properties": {"repobilityId": "32e4f5dc8a888fa3", "scanner": "scanner-primary", "fingerprint": "0446ad613746e2a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d7fa2e71f46edd8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/models-unified.js:220"}, "properties": {"repobilityId": "be55a558ebcdad01", "scanner": "scanner-primary", "fingerprint": "4d7fa2e71f46edd8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7cacf2bdc566800c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/ollama-hosts.js:172"}, "properties": {"repobilityId": "ce9878f0836c346d", "scanner": "scanner-primary", "fingerprint": "7cacf2bdc566800c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ee680188faa133ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/routes/reports.js:22"}, "properties": {"repobilityId": "0f3cfd248bd8de8a", "scanner": "scanner-primary", "fingerprint": "ee680188faa133ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-520556057a236e19", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/data-proxy.js:17"}, "properties": {"repobilityId": "07b376abf5d8faf3", "scanner": "scanner-primary", "fingerprint": "520556057a236e19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8b19493b8d3cc6a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/routes/inference.js:82"}, "properties": {"repobilityId": "91a2330cb68eeb3a", "scanner": "scanner-primary", "fingerprint": "8b19493b8d3cc6a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05797965053d11e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/routes/hermes-openai-proxy.js:378"}, "properties": {"repobilityId": "5000e67e0476f501", "scanner": "scanner-primary", "fingerprint": "05797965053d11e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fefa4c8f64611508", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/persona-selector.js:63"}, "properties": {"repobilityId": "63d8a0bfb4e9558d", "scanner": "scanner-primary", "fingerprint": "fefa4c8f64611508", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31f19f99ec1f9aa6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-unified.js:95"}, "properties": {"repobilityId": "175cc68d15c98d56", "scanner": "scanner-primary", "fingerprint": "31f19f99ec1f9aa6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5db612d6eb0300dd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-recommendations.js:60"}, "properties": {"repobilityId": "86b043171eefe29b", "scanner": "scanner-primary", "fingerprint": "5db612d6eb0300dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-980a5998bed250c3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-page.js:335"}, "properties": {"repobilityId": "284b63665cc6d982", "scanner": "scanner-primary", "fingerprint": "980a5998bed250c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9823b083d16c788c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/models-management.js:96"}, "properties": {"repobilityId": "9f19effb6b49d639", "scanner": "scanner-primary", "fingerprint": "9823b083d16c788c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-08d41b3f6d0c2729", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/cluster-schedule.js:74"}, "properties": {"repobilityId": "1c6eb50adbffce34", "scanner": "scanner-primary", "fingerprint": "08d41b3f6d0c2729", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab994e024e6aa789", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/buddy-page.js:289"}, "properties": {"repobilityId": "b2bc23982d5329bd", "scanner": "scanner-primary", "fingerprint": "ab994e024e6aa789", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e7349e19ef201da8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-loadtests.js:204"}, "properties": {"repobilityId": "d84405b44dcef42c", "scanner": "scanner-primary", "fingerprint": "e7349e19ef201da8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-13dad173e668dbbb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/analytics.js:157"}, "properties": {"repobilityId": "a8681835fa02c5f2", "scanner": "scanner-primary", "fingerprint": "13dad173e668dbbb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d832139c46461def", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/performance-baselines.js:178"}, "properties": {"repobilityId": "faa391151dfa9838", "scanner": "scanner-primary", "fingerprint": "d832139c46461def", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-80aff11b1793b82c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/AgentListView.js:77"}, "properties": {"repobilityId": "c82d489256896156", "scanner": "scanner-primary", "fingerprint": "80aff11b1793b82c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7bc0642f677c113", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/buddy-page-hooks.js:61"}, "properties": {"repobilityId": "596e942e49de2089", "scanner": "scanner-primary", "fingerprint": "a7bc0642f677c113", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-038fa5bf836f2abb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/components/buddy.js:220"}, "properties": {"repobilityId": "ff012353e8acdb9b", "scanner": "scanner-primary", "fingerprint": "038fa5bf836f2abb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c515d5c182fa0d9a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-voix.js:198"}, "properties": {"repobilityId": "23a3bb59951a18b4", "scanner": "scanner-primary", "fingerprint": "c515d5c182fa0d9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d9fe2691c94ec13c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-history.js:108"}, "properties": {"repobilityId": "3c820f966bbbc7bf", "scanner": "scanner-primary", "fingerprint": "d9fe2691c94ec13c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b8de349aa6a70181", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/public/js/chat/chat-messaging.js:524"}, "properties": {"repobilityId": "b1ad0cb0758f5f7e", "scanner": "scanner-primary", "fingerprint": "b8de349aa6a70181", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-de73afba97eacc71", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/src/app.js:19"}, "properties": {"repobilityId": "6172f49756fefcf9", "scanner": "scanner-primary", "fingerprint": "de73afba97eacc71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecc548d4b3f0017a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/app.js:22"}, "properties": {"repobilityId": "4aa2b030e898148a", "scanner": "scanner-primary", "fingerprint": "ecc548d4b3f0017a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ff0ded572c3565b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/helpers/promptAnalysis.js:213"}, "properties": {"repobilityId": "80c04d5edb7bf9f1", "scanner": "scanner-primary", "fingerprint": "6ff0ded572c3565b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4368a863c69aa4c3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/toolExecutor.js:123"}, "properties": {"repobilityId": "68b8f1de1b0feabc", "scanner": "scanner-primary", "fingerprint": "4368a863c69aa4c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-142e4ad4e44a6398", "level": "note", "message": {"text": "Legacy-named symbol `pruneOld` in core/src/services/backupService.js:129"}, "properties": {"repobilityId": "283a569771d44904", "scanner": "scanner-primary", "fingerprint": "142e4ad4e44a6398", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-52aa03ccc53d6ca2", "level": "none", "message": {"text": "Commented-code block (7 lines) in core/src/services/hostPreferenceService.js:36"}, "properties": {"repobilityId": "f3eb24031d968789", "scanner": "scanner-primary", "fingerprint": "52aa03ccc53d6ca2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-058fb4333bfce4cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/src/services/modelRouterConfig.js:115"}, "properties": {"repobilityId": "314b9bda8a3811d0", "scanner": "scanner-primary", "fingerprint": "058fb4333bfce4cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d4551cfc8c9592b", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/src/services/chatService.js:189"}, "properties": {"repobilityId": "7c2fcaf2571c9df5", "scanner": "scanner-primary", "fingerprint": "8d4551cfc8c9592b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43ecb192c18ffabf", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/src/services/modelRouter.js:181"}, "properties": {"repobilityId": "fb49581a752bf3af", "scanner": "scanner-primary", "fingerprint": "43ecb192c18ffabf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a2f0497464bca14", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/modelRouter.js:172"}, "properties": {"repobilityId": "6e5a2aaa89cf3307", "scanner": "scanner-primary", "fingerprint": "8a2f0497464bca14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a1d9b5a1aa24e60c", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/src/services/inferenceLanePolicy.js:92"}, "properties": {"repobilityId": "d27cd9071581a5bc", "scanner": "scanner-primary", "fingerprint": "a1d9b5a1aa24e60c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-145cc0083c0a337c", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/src/services/clusterScheduleService.js:428"}, "properties": {"repobilityId": "5ed0b9538f31ab77", "scanner": "scanner-primary", "fingerprint": "145cc0083c0a337c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b66f19072427ba8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/ollamaEnrichmentService.js:32"}, "properties": {"repobilityId": "8aa07a8f141dfdbd", "scanner": "scanner-primary", "fingerprint": "4b66f19072427ba8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4f4b5c02b19ee7a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/openclawClient.js:261"}, "properties": {"repobilityId": "e5dfa543f95bc461", "scanner": "scanner-primary", "fingerprint": "c4f4b5c02b19ee7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6df7740cacf3efc3", "level": "none", "message": {"text": "Commented-code block (10 lines) in core/src/services/benchmarkClaimService.js:319"}, "properties": {"repobilityId": "04d000498eec3dff", "scanner": "scanner-primary", "fingerprint": "6df7740cacf3efc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7dedc088efd58d3d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/roundtable/notifier.js:90"}, "properties": {"repobilityId": "7b982f9fe8ccda5e", "scanner": "scanner-primary", "fingerprint": "7dedc088efd58d3d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-443e4f3319b76e43", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 core/src/services/modelSync/syncOrchestrator.js:35"}, "properties": {"repobilityId": "6cd9e9d8d67f94f3", "scanner": "scanner-primary", "fingerprint": "443e4f3319b76e43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2b9de76d215015d", "level": "note", "message": {"text": "221 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "3ace2f01637871b5", "scanner": "scanner-primary", "fingerprint": "a2b9de76d215015d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-8f93921e8df7b694", "level": "error", "message": {"text": "Dangling fetch: GET /api/rag/metrics (rag/public/js/documents.js:44)"}, "properties": {"repobilityId": "71354b7317829aba", "scanner": "scanner-primary", "fingerprint": "8f93921e8df7b694", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-56d8bd6879693a0a", "level": "error", "message": {"text": "Dangling fetch: GET /api/rag/metrics (rag/public/js/dashboard.js:107)"}, "properties": {"repobilityId": "cd068f4dc1749ad0", "scanner": "scanner-primary", "fingerprint": "56d8bd6879693a0a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-149ef826ed185cd0", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/results?page=${paginationState.page}&limit=${paginationState.limit} (benchmark/public/js/results-explorer.js:142)"}, "properties": {"repobilityId": "db396f0b2975a57b", "scanner": "scanner-primary", "fingerprint": "149ef826ed185cd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1fa16bacd0e8d90c", "level": "error", "message": {"text": "Dangling fetch: GET /api/profiler/hosts (benchmark/public/js/results-explorer.js:143)"}, "properties": {"repobilityId": "928930c103217379", "scanner": "scanner-primary", "fingerprint": "1fa16bacd0e8d90c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9961ac5862edbe62", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/results/${resultId} (benchmark/public/js/results-explorer-inspector.js:101)"}, "properties": {"repobilityId": "c75c076560dc90f8", "scanner": "scanner-primary", "fingerprint": "9961ac5862edbe62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e3504b9880410fe1", "level": "error", "message": {"text": "Dangling fetch: POST /api/benchmark/results/${resultId}/rejudge (benchmark/public/js/results-explorer-inspector.js:813)"}, "properties": {"repobilityId": "422f9a07795300e9", "scanner": "scanner-primary", "fingerprint": "e3504b9880410fe1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-130af9a6bc47da67", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/leaderboard-v2/index.js:550)"}, "properties": {"repobilityId": "5051d1eabb65ec72", "scanner": "scanner-primary", "fingerprint": "130af9a6bc47da67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a1dfc5c241e4f2f8", "level": "error", "message": {"text": "Dangling fetch: GET /api/profiler/models (benchmark/public/js/model-profiler/components/readiness-cache.js:12)"}, "properties": {"repobilityId": "b84b22c78caf8d93", "scanner": "scanner-primary", "fingerprint": "a1dfc5c241e4f2f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5407f40d6dfaa4ef", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/scoring-profile (benchmark/public/js/benchmark/scoring-profile.js:31)"}, "properties": {"repobilityId": "f08d1a2478d179dd", "scanner": "scanner-primary", "fingerprint": "5407f40d6dfaa4ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5154c259dcec7d64", "level": "error", "message": {"text": "Dangling fetch: PUT /api/benchmark/scoring-profile (benchmark/public/js/benchmark/scoring-profile.js:38)"}, "properties": {"repobilityId": "cc1580bf490eb59f", "scanner": "scanner-primary", "fingerprint": "5154c259dcec7d64", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af3a1490a09d8490", "level": "error", "message": {"text": "Dangling fetch: POST /api/benchmark/scoring-profile/reset (benchmark/public/js/benchmark/scoring-profile.js:49)"}, "properties": {"repobilityId": "0c8b6d7d1df4fc6f", "scanner": "scanner-primary", "fingerprint": "af3a1490a09d8490", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce38b2a84fcdd518", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/retention/stats (benchmark/public/js/benchmark-v2/data-management.js:36)"}, "properties": {"repobilityId": "4da79f2063e2ff5c", "scanner": "scanner-primary", "fingerprint": "ce38b2a84fcdd518", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b9cc551f9167cc8", "level": "error", "message": {"text": "Dangling fetch: POST /api/benchmark/retention/${path} (benchmark/public/js/benchmark-v2/data-management.js:43)"}, "properties": {"repobilityId": "c1fd5f9e04c9fa81", "scanner": "scanner-primary", "fingerprint": "1b9cc551f9167cc8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b168702eb8d825e7", "level": "error", "message": {"text": "Dangling fetch: GET /api/profiler/hosts/${encodeURIComponent(h.hostId)}/status (benchmark/public/js/benchmark-v2/infrastructure.js:52)"}, "properties": {"repobilityId": "fd8eea58c37ae5a3", "scanner": "scanner-primary", "fingerprint": "b168702eb8d825e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93fb5cf62ab82f97", "level": "error", "message": {"text": "Dangling fetch: POST /api/profiler/hosts/discover (benchmark/public/js/benchmark-v2/infrastructure.js:94)"}, "properties": {"repobilityId": "2163ec42e75f133a", "scanner": "scanner-primary", "fingerprint": "93fb5cf62ab82f97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e63bdb2f51f1370", "level": "error", "message": {"text": "Dangling fetch: GET /api/setup/status (benchmark/public/js/setup/index.js:15)"}, "properties": {"repobilityId": "857c0affab830326", "scanner": "scanner-primary", "fingerprint": "7e63bdb2f51f1370", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bba0559707e39b52", "level": "error", "message": {"text": "Dangling fetch: POST /api/setup/test-host (benchmark/public/js/setup/index.js:51)"}, "properties": {"repobilityId": "cfebb2a5b4feef21", "scanner": "scanner-primary", "fingerprint": "bba0559707e39b52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31c79a5df4b369cc", "level": "error", "message": {"text": "Dangling fetch: POST /api/setup/save (benchmark/public/js/setup/index.js:188)"}, "properties": {"repobilityId": "76378f812fbc2b23", "scanner": "scanner-primary", "fingerprint": "31c79a5df4b369cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-152d82f72f7556e0", "level": "error", "message": {"text": "Dangling fetch: POST /api/benchmark/judge/matrix-calibrate (benchmark/public/js/courthouse-v2/calibration.js:234)"}, "properties": {"repobilityId": "71252ccc865188b9", "scanner": "scanner-primary", "fingerprint": "152d82f72f7556e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a9ef2a1f64f8aa9", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/courthouse-v2/calibration.js:256)"}, "properties": {"repobilityId": "3749ae6d54416db7", "scanner": "scanner-primary", "fingerprint": "7a9ef2a1f64f8aa9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0b48f2242cf875ca", "level": "error", "message": {"text": "Dangling fetch: GET /api/profiler/hosts/test/hosts-status (benchmark/public/js/courthouse-v2/calibration.js:295)"}, "properties": {"repobilityId": "6fefe7ebdc52b009", "scanner": "scanner-primary", "fingerprint": "0b48f2242cf875ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9023a4422ec7d713", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/judge/calibration-status (benchmark/public/js/courthouse-v2/index.js:222)"}, "properties": {"repobilityId": "b292e82bdd64e64f", "scanner": "scanner-primary", "fingerprint": "9023a4422ec7d713", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a688a0424a2eb5e", "level": "error", "message": {"text": "Dangling fetch: GET /api/benchmark/judge/ground-truth/gaps (benchmark/public/js/courthouse-v2/index.js:236)"}, "properties": {"repobilityId": "e91848a8a8c1024e", "scanner": "scanner-primary", "fingerprint": "8a688a0424a2eb5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cdd6414b380bd7e6", "level": "error", "message": {"text": "Dangling fetch: GET /api/cluster/schedule/live (core/public/js/models-unified.js:485)"}, "properties": {"repobilityId": "e9756f9cfa2b43db", "scanner": "scanner-primary", "fingerprint": "cdd6414b380bd7e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e61e4bcdd9dd04c9", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/dashboard?hours=${this.currentTimeRange} (core/public/js/performance-page.js:35)"}, "properties": {"repobilityId": "7b678bccaa0ed2af", "scanner": "scanner-primary", "fingerprint": "e61e4bcdd9dd04c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-323de0db87e091ba", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/dashboard?hours=${this.currentTimeRange} (core/public/js/performance-page.js:50)"}, "properties": {"repobilityId": "69c6d5d6099629dc", "scanner": "scanner-primary", "fingerprint": "323de0db87e091ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2fcfbc3dd5a08d98", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/latency-trends?${params} (core/public/js/performance-page.js:335)"}, "properties": {"repobilityId": "e95f2b47b4b9b42d", "scanner": "scanner-primary", "fingerprint": "2fcfbc3dd5a08d98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6eb6e8ebaef8469", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/percentiles?${params} (core/public/js/performance-page.js:364)"}, "properties": {"repobilityId": "04036059b14e63e0", "scanner": "scanner-primary", "fingerprint": "a6eb6e8ebaef8469", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bb6b7369a474a73", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/throughput?${params} (core/public/js/performance-page.js:393)"}, "properties": {"repobilityId": "831627e9fed6856f", "scanner": "scanner-primary", "fingerprint": "5bb6b7369a474a73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91c5096af650556b", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/endpoints (core/public/js/performance-page.js:415)"}, "properties": {"repobilityId": "3b52b0973b6f5602", "scanner": "scanner-primary", "fingerprint": "91c5096af650556b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b31c996016abc84", "level": "error", "message": {"text": "Dangling fetch: POST /api/models/ollama/pull (core/public/js/models-management.js:54)"}, "properties": {"repobilityId": "f840be474611b661", "scanner": "scanner-primary", "fingerprint": "8b31c996016abc84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bda3211a1a72c3c", "level": "error", "message": {"text": "Dangling fetch: GET /api/models/registry/${encodeURIComponent(modelName)}/execution-config (core/public/js/models-execution-config.js:54)"}, "properties": {"repobilityId": "04523f8a75d691ae", "scanner": "scanner-primary", "fingerprint": "2bda3211a1a72c3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-17b01a0c7b825482", "level": "error", "message": {"text": "Dangling fetch: POST /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config (core/public/js/models-execution-config.js:181)"}, "properties": {"repobilityId": "324012852edc0117", "scanner": "scanner-primary", "fingerprint": "17b01a0c7b825482", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-92a44fb1745d2d2d", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/models/registry/${encodeURIComponent(this.currentModel)}/execution-config (core/public/js/models-execution-config.js:205)"}, "properties": {"repobilityId": "6e09549bbe8a9604", "scanner": "scanner-primary", "fingerprint": "92a44fb1745d2d2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d24a778c589ed2a", "level": "error", "message": {"text": "Dangling fetch: POST /api/models/registry/sync-hosts (core/public/js/models-execution-config.js:230)"}, "properties": {"repobilityId": "bef02f0e2bbe179a", "scanner": "scanner-primary", "fingerprint": "5d24a778c589ed2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4bbfd15e98443fc0", "level": "error", "message": {"text": "Dangling fetch: POST /api/voix/transcribe (core/public/js/voice.js:401)"}, "properties": {"repobilityId": "84e8ccc05e6c6ef0", "scanner": "scanner-primary", "fingerprint": "4bbfd15e98443fc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-508500f8f974b49c", "level": "error", "message": {"text": "Dangling fetch: POST /api/voix/synthesize (core/public/js/voice.js:553)"}, "properties": {"repobilityId": "6c1c3b1a63915e25", "scanner": "scanner-primary", "fingerprint": "508500f8f974b49c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e3c4a6fb22b7b3c", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/buddy-page.js:210)"}, "properties": {"repobilityId": "f9efc33a35a75b27", "scanner": "scanner-primary", "fingerprint": "3e3c4a6fb22b7b3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cede48da80ff1a0b", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/facts (core/public/js/buddy-page.js:217)"}, "properties": {"repobilityId": "c8b4f63be1e5c5d1", "scanner": "scanner-primary", "fingerprint": "cede48da80ff1a0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3aa8f4c91e14bfd0", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/source-health (core/public/js/buddy-page.js:229)"}, "properties": {"repobilityId": "2ab0b9417d14e062", "scanner": "scanner-primary", "fingerprint": "3aa8f4c91e14bfd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-140084d288309e7e", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/singleton (core/public/js/buddy-page.js:272)"}, "properties": {"repobilityId": "b654d55b605a87f4", "scanner": "scanner-primary", "fingerprint": "140084d288309e7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3140ef73a2529daa", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/singleton (core/public/js/buddy-page.js:289)"}, "properties": {"repobilityId": "c072220fe2a2df63", "scanner": "scanner-primary", "fingerprint": "3140ef73a2529daa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-118e79eae48d0bbe", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/chat (core/public/js/buddy-page.js:466)"}, "properties": {"repobilityId": "10daf89e9cafc4fa", "scanner": "scanner-primary", "fingerprint": "118e79eae48d0bbe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea0f4b746faef251", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/buddy-page.js:639)"}, "properties": {"repobilityId": "df403a1543b7a062", "scanner": "scanner-primary", "fingerprint": "ea0f4b746faef251", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1404f87dd6d82cd7", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/personality-preview (core/public/js/buddy-page.js:657)"}, "properties": {"repobilityId": "402d52e1b5e9c235", "scanner": "scanner-primary", "fingerprint": "1404f87dd6d82cd7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fff92071628c55b3", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/bootstrap-soul (core/public/js/buddy-page.js:695)"}, "properties": {"repobilityId": "32896dce692213b8", "scanner": "scanner-primary", "fingerprint": "fff92071628c55b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6756c64324340bcd", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/personality-sources (core/public/js/buddy-page.js:707)"}, "properties": {"repobilityId": "c5158e4fee2862ef", "scanner": "scanner-primary", "fingerprint": "6756c64324340bcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6642a53333532197", "level": "error", "message": {"text": "Dangling fetch: GET /api/models/all (core/public/js/buddy-page.js:744)"}, "properties": {"repobilityId": "e1f6fd89c894ed62", "scanner": "scanner-primary", "fingerprint": "6642a53333532197", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4cabc4874d3913b5", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/facts?include=forgotten (core/public/js/buddy-page.js:1080)"}, "properties": {"repobilityId": "039ca6bed4a4db06", "scanner": "scanner-primary", "fingerprint": "4cabc4874d3913b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea8cb9556f09ff16", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/facts (core/public/js/buddy-page.js:1102)"}, "properties": {"repobilityId": "d387468cb8c87931", "scanner": "scanner-primary", "fingerprint": "ea8cb9556f09ff16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d12cbf8851285919", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/load-tests?limit=50 (core/public/js/performance-loadtests.js:7)"}, "properties": {"repobilityId": "fda080662282a846", "scanner": "scanner-primary", "fingerprint": "d12cbf8851285919", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d22256f829b55734", "level": "error", "message": {"text": "Dangling fetch: POST /api/performance/load-tests (core/public/js/performance-loadtests.js:204)"}, "properties": {"repobilityId": "3cd584aabcc62743", "scanner": "scanner-primary", "fingerprint": "d22256f829b55734", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fcb97c8df8f7390c", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/baselines (core/public/js/performance-baselines.js:7)"}, "properties": {"repobilityId": "c7abfd2bda14062a", "scanner": "scanner-primary", "fingerprint": "fcb97c8df8f7390c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-87cbd0e0ae5149f6", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/baseline-compare?hours=${this.currentTimeRange} (core/public/js/performance-baselines.js:83)"}, "properties": {"repobilityId": "5f6814ce511109ca", "scanner": "scanner-primary", "fingerprint": "87cbd0e0ae5149f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d8167d79ca5a452", "level": "error", "message": {"text": "Dangling fetch: GET /api/performance/load-tests?limit=10 (core/public/js/performance-baselines.js:178)"}, "properties": {"repobilityId": "dd7458ca11e41ca7", "scanner": "scanner-primary", "fingerprint": "8d8167d79ca5a452", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b14d9123fdf39445", "level": "error", "message": {"text": "Dangling fetch: POST /api/performance/baselines (core/public/js/performance-baselines.js:214)"}, "properties": {"repobilityId": "638d336ae4dcf134", "scanner": "scanner-primary", "fingerprint": "b14d9123fdf39445", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-436356c47e06f678", "level": "error", "message": {"text": "Dangling fetch: POST /api/performance/baselines/${id}/activate (core/public/js/performance-baselines.js:247)"}, "properties": {"repobilityId": "181a5a6f540b321a", "scanner": "scanner-primary", "fingerprint": "436356c47e06f678", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-730231bb267f019c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/performance/baselines/${id} (core/public/js/performance-baselines.js:267)"}, "properties": {"repobilityId": "22fdeb1359f38f81", "scanner": "scanner-primary", "fingerprint": "730231bb267f019c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-66f766363cf1cf34", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/geolocation (core/public/js/utils/api-utils.js:121)"}, "properties": {"repobilityId": "2bc819ed3dcd0541", "scanner": "scanner-primary", "fingerprint": "66f766363cf1cf34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ca9464ee830e9db4", "level": "error", "message": {"text": "Dangling fetch: GET /api/openclaw/agents (core/public/js/components/AgentListView.js:316)"}, "properties": {"repobilityId": "a4b550ac4b82eeb8", "scanner": "scanner-primary", "fingerprint": "ca9464ee830e9db4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-356e6d3a776c9158", "level": "error", "message": {"text": "Dangling fetch: GET /api/nerve-center/intelligence (core/public/js/components/buddy-page-hooks.js:61)"}, "properties": {"repobilityId": "043d7b34f08a185f", "scanner": "scanner-primary", "fingerprint": "356e6d3a776c9158", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c703d24bb49822b", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/react (core/public/js/components/buddy.js:220)"}, "properties": {"repobilityId": "0638164dda8eebe5", "scanner": "scanner-primary", "fingerprint": "8c703d24bb49822b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5696ca747156840", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/event (core/public/js/components/buddy.js:299)"}, "properties": {"repobilityId": "1a04d9904d7a4a0b", "scanner": "scanner-primary", "fingerprint": "c5696ca747156840", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e37fe2d74fcc34c", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/state (core/public/js/components/buddy.js:644)"}, "properties": {"repobilityId": "c4ba2e3c3ec27097", "scanner": "scanner-primary", "fingerprint": "9e37fe2d74fcc34c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6021f7e5de2c39f9", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/singleton (core/public/js/components/buddy.js:685)"}, "properties": {"repobilityId": "871eee542e05035d", "scanner": "scanner-primary", "fingerprint": "6021f7e5de2c39f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2689cefc37320cea", "level": "error", "message": {"text": "Dangling fetch: POST /api/buddy/react (core/public/js/components/buddy.js:879)"}, "properties": {"repobilityId": "d9fc3abc75aaa767", "scanner": "scanner-primary", "fingerprint": "2689cefc37320cea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffcdc4b30c214353", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/singleton (core/public/js/components/buddy.js:1091)"}, "properties": {"repobilityId": "42be344583bb5b4d", "scanner": "scanner-primary", "fingerprint": "ffcdc4b30c214353", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd594895184477d7", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/personality-resolved (core/public/js/components/buddy.js:1102)"}, "properties": {"repobilityId": "f4d19496da39ca5b", "scanner": "scanner-primary", "fingerprint": "dd594895184477d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea0796eec5f85c3b", "level": "error", "message": {"text": "Dangling fetch: GET /api/buddy/facts (core/public/js/components/buddy.js:1110)"}, "properties": {"repobilityId": "adc1cbfc5c153f24", "scanner": "scanner-primary", "fingerprint": "ea0796eec5f85c3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d1e022d655989b5b", "level": "error", "message": {"text": "Dangling fetch: POST /api/voix/transcribe (core/public/js/chat/chat-voix.js:198)"}, "properties": {"repobilityId": "5fe94fe564c2d831", "scanner": "scanner-primary", "fingerprint": "d1e022d655989b5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b6f46d5fd49a587", "level": "error", "message": {"text": "Dangling fetch: POST /api/voix/synthesize (core/public/js/chat/chat-voix.js:211)"}, "properties": {"repobilityId": "cadeb3e258dfb614", "scanner": "scanner-primary", "fingerprint": "7b6f46d5fd49a587", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-19e08730565091d6", "level": "error", "message": {"text": "Dangling fetch: GET /api/cluster/schedule/live (core/public/js/chat/chat-messaging.js:1110)"}, "properties": {"repobilityId": "7b7d64ad4b6b6775", "scanner": "scanner-primary", "fingerprint": "19e08730565091d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b55957b904b364fb", "level": "error", "message": {"text": "Dangling fetch: GET /api/vector?scope=status (mc/src/components/search-modal.tsx:228)"}, "properties": {"repobilityId": "eee257887d8cb7ed", "scanner": "scanner-primary", "fingerprint": "b55957b904b364fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a42d4a85e41fa9b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/sessions/raw?sessionId=${encodeURIComponent(sessionId)} (mc/src/components/sessions-view.tsx:193)"}, "properties": {"repobilityId": "21afbd0de5a7bb16", "scanner": "scanner-primary", "fingerprint": "a42d4a85e41fa9b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e4fc5dd356633505", "level": "error", "message": {"text": "Dangling fetch: POST /api/usage/providers/${p.provider} (mc/src/components/usage-view.tsx:405)"}, "properties": {"repobilityId": "0c2bb192ba419d2f", "scanner": "scanner-primary", "fingerprint": "e4fc5dd356633505", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-218acba2b4085963", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills/install (mc/src/components/skills-view.tsx:257)"}, "properties": {"repobilityId": "4e09d8de97759c01", "scanner": "scanner-primary", "fingerprint": "218acba2b4085963", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-465705682177de02", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills/test (mc/src/components/skills-view.tsx:488)"}, "properties": {"repobilityId": "5b7a8ae840c2e78c", "scanner": "scanner-primary", "fingerprint": "465705682177de02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-349b3821904a7858", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:728)"}, "properties": {"repobilityId": "59ce56c3dab81a1a", "scanner": "scanner-primary", "fingerprint": "349b3821904a7858", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-00d910a472351127", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills/clawhub?action=list (mc/src/components/skills-view.tsx:1059)"}, "properties": {"repobilityId": "e51a72c1c62c1932", "scanner": "scanner-primary", "fingerprint": "00d910a472351127", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bff2c58b4de811d", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills/clawhub?action=explore&limit=28&sort=trending (mc/src/components/skills-view.tsx:1090)"}, "properties": {"repobilityId": "0f83012588d6758a", "scanner": "scanner-primary", "fingerprint": "5bff2c58b4de811d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1d7c033c8e92ce49", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills/clawhub?action=search&q=${encodeURIComponent(q)}&limit=28 (mc/src/components/skills-view.tsx:1140)"}, "properties": {"repobilityId": "71fdabbafef67eb4", "scanner": "scanner-primary", "fingerprint": "1d7c033c8e92ce49", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9d8db23739a73cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1184)"}, "properties": {"repobilityId": "05f4b6017f9e871c", "scanner": "scanner-primary", "fingerprint": "c9d8db23739a73cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a60d128f15e2b979", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1222)"}, "properties": {"repobilityId": "c798d77379b36318", "scanner": "scanner-primary", "fingerprint": "a60d128f15e2b979", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8cec5723635193c9", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills/clawhub (mc/src/components/skills-view.tsx:1252)"}, "properties": {"repobilityId": "81d6747cc322e03e", "scanner": "scanner-primary", "fingerprint": "8cec5723635193c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b8e6ea9135ed3e97", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills (mc/src/components/skills-view.tsx:1482)"}, "properties": {"repobilityId": "3e16a934a85bbc4e", "scanner": "scanner-primary", "fingerprint": "b8e6ea9135ed3e97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-29e72db1e3fa9ffe", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills?action=check (mc/src/components/skills-view.tsx:1483)"}, "properties": {"repobilityId": "26028beceb1e8036", "scanner": "scanner-primary", "fingerprint": "29e72db1e3fa9ffe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a834ecbe3f17bda8", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:1573)"}, "properties": {"repobilityId": "822fafc15f837cee", "scanner": "scanner-primary", "fingerprint": "a834ecbe3f17bda8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-adf01b79750b85ef", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills (mc/src/components/skills-view.tsx:1596)"}, "properties": {"repobilityId": "7d2e6eb82455c5ec", "scanner": "scanner-primary", "fingerprint": "adf01b79750b85ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b82aeafd9396c02c", "level": "error", "message": {"text": "Dangling fetch: POST /api/skills (mc/src/components/skills-view.tsx:1601)"}, "properties": {"repobilityId": "22de9c7249877556", "scanner": "scanner-primary", "fingerprint": "b82aeafd9396c02c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c327dd429da0dfd", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/restart-announcement-bar.tsx:40)"}, "properties": {"repobilityId": "11fd5fc47578ad34", "scanner": "scanner-primary", "fingerprint": "5c327dd429da0dfd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9fc1962d53960c42", "level": "error", "message": {"text": "Dangling fetch: GET /api/agentx/cluster (mc/src/components/agentx-cluster-strip.tsx:40)"}, "properties": {"repobilityId": "e78f0bab9c8bfca4", "scanner": "scanner-primary", "fingerprint": "9fc1962d53960c42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd6cae72f539ec77", "level": "error", "message": {"text": "Dangling fetch: POST /api/integrations (mc/src/components/integrations-view.tsx:381)"}, "properties": {"repobilityId": "698443513c68ba75", "scanner": "scanner-primary", "fingerprint": "dd6cae72f539ec77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af33248527e29328", "level": "error", "message": {"text": "Dangling fetch: POST /api/integrations (mc/src/components/integrations-view.tsx:402)"}, "properties": {"repobilityId": "6eff64f6e8b33395", "scanner": "scanner-primary", "fingerprint": "af33248527e29328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e64fe1c2e3103c81", "level": "error", "message": {"text": "Dangling fetch: GET /api/onboard (mc/src/components/setup-gate.tsx:31)"}, "properties": {"repobilityId": "72ad631eb1637ae3", "scanner": "scanner-primary", "fingerprint": "e64fe1c2e3103c81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4c18d95593ef910", "level": "error", "message": {"text": "Dangling fetch: GET /api/audio (mc/src/components/audio-view.tsx:1167)"}, "properties": {"repobilityId": "6679dd414a4eb85e", "scanner": "scanner-primary", "fingerprint": "a4c18d95593ef910", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-09f8af4461d3dde4", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1209)"}, "properties": {"repobilityId": "d1e4b535a51be6f3", "scanner": "scanner-primary", "fingerprint": "09f8af4461d3dde4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e4b48fac90d8583", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1252)"}, "properties": {"repobilityId": "7d17fdd98a6d3b54", "scanner": "scanner-primary", "fingerprint": "7e4b48fac90d8583", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bc87bfe0c642b05", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1301)"}, "properties": {"repobilityId": "152605b25271c6f4", "scanner": "scanner-primary", "fingerprint": "6bc87bfe0c642b05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-018be0631c8be57d", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1375)"}, "properties": {"repobilityId": "33d2bf7ec28e495a", "scanner": "scanner-primary", "fingerprint": "018be0631c8be57d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f94b1a621e3d0197", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1410)"}, "properties": {"repobilityId": "c61db6ad0fd04a16", "scanner": "scanner-primary", "fingerprint": "f94b1a621e3d0197", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fa4c9f12e62c7a0", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1444)"}, "properties": {"repobilityId": "12f51c31d20eae36", "scanner": "scanner-primary", "fingerprint": "4fa4c9f12e62c7a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f5366c787cad8c8", "level": "error", "message": {"text": "Dangling fetch: POST /api/audio (mc/src/components/audio-view.tsx:1473)"}, "properties": {"repobilityId": "aeb8fce2b5c9480f", "scanner": "scanner-primary", "fingerprint": "6f5366c787cad8c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e4d54248cf9a8f5", "level": "error", "message": {"text": "Dangling fetch: GET /api/calendar?days=14 (mc/src/components/calendar-view.tsx:173)"}, "properties": {"repobilityId": "a7bc85ceb91b1ea6", "scanner": "scanner-primary", "fingerprint": "1e4d54248cf9a8f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a43129d8cc6b840", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:225)"}, "properties": {"repobilityId": "426d822a0a8462e4", "scanner": "scanner-primary", "fingerprint": "9a43129d8cc6b840", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d86c557f07837914", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:252)"}, "properties": {"repobilityId": "e9722993a53dc800", "scanner": "scanner-primary", "fingerprint": "d86c557f07837914", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a7eeb9521c86717", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:281)"}, "properties": {"repobilityId": "ee170d9b6ae31e05", "scanner": "scanner-primary", "fingerprint": "8a7eeb9521c86717", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dbc04a657dc79d3f", "level": "error", "message": {"text": "Dangling fetch: POST /api/calendar (mc/src/components/calendar-view.tsx:305)"}, "properties": {"repobilityId": "feb4054d05f3e1a2", "scanner": "scanner-primary", "fingerprint": "dbc04a657dc79d3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa548a7d13c4ea02", "level": "error", "message": {"text": "Dangling fetch: GET /api/live (mc/src/components/dashboard-view.tsx:861)"}, "properties": {"repobilityId": "e5dd25c30efe73e1", "scanner": "scanner-primary", "fingerprint": "fa548a7d13c4ea02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bc032fff81611a5", "level": "error", "message": {"text": "Dangling fetch: GET /api/system (mc/src/components/dashboard-view.tsx:882)"}, "properties": {"repobilityId": "27bd4f64b7e844a5", "scanner": "scanner-primary", "fingerprint": "5bc032fff81611a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff4f49ecfbded05f", "level": "error", "message": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/dashboard-view.tsx:886)"}, "properties": {"repobilityId": "221db2196847d938", "scanner": "scanner-primary", "fingerprint": "ff4f49ecfbded05f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6ed8fee5b117f73d", "level": "error", "message": {"text": "Dangling fetch: GET /api/runtime/diagnostics (mc/src/components/dashboard-view.tsx:890)"}, "properties": {"repobilityId": "f7047329950d30b4", "scanner": "scanner-primary", "fingerprint": "6ed8fee5b117f73d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-27614e65f2e8fa6b", "level": "error", "message": {"text": "Dangling fetch: GET /api/mission-control-update (mc/src/components/mission-control-update-banner.tsx:47)"}, "properties": {"repobilityId": "481505b48fbabd63", "scanner": "scanner-primary", "fingerprint": "27614e65f2e8fa6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-86c1d6824f405c82", "level": "error", "message": {"text": "Dangling fetch: POST /api/mission-control-update (mc/src/components/mission-control-update-banner.tsx:88)"}, "properties": {"repobilityId": "03c4ce540ac85fab", "scanner": "scanner-primary", "fingerprint": "86c1d6824f405c82", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-076449ebe220110f", "level": "error", "message": {"text": "Dangling fetch: GET /api/security (mc/src/components/security-view.tsx:438)"}, "properties": {"repobilityId": "2ee2f1291d6b80d4", "scanner": "scanner-primary", "fingerprint": "076449ebe220110f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2d563b0adf72e294", "level": "error", "message": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:553)"}, "properties": {"repobilityId": "426816d95daaffc3", "scanner": "scanner-primary", "fingerprint": "2d563b0adf72e294", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-65d62c948d011d7e", "level": "error", "message": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:591)"}, "properties": {"repobilityId": "b134ec40c01cabe1", "scanner": "scanner-primary", "fingerprint": "65d62c948d011d7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44b1111d50f76040", "level": "error", "message": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:633)"}, "properties": {"repobilityId": "40feb97128be7688", "scanner": "scanner-primary", "fingerprint": "44b1111d50f76040", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d1f44b1691758d9a", "level": "error", "message": {"text": "Dangling fetch: POST /api/security (mc/src/components/security-view.tsx:651)"}, "properties": {"repobilityId": "804d229263da37ca", "scanner": "scanner-primary", "fingerprint": "d1f44b1691758d9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-449c6f597543c331", "level": "error", "message": {"text": "Dangling fetch: GET /api/hooks (mc/src/components/hooks-view.tsx:400)"}, "properties": {"repobilityId": "862ae5b4434f6434", "scanner": "scanner-primary", "fingerprint": "449c6f597543c331", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff06061bc2a20a78", "level": "error", "message": {"text": "Dangling fetch: GET /api/hooks?action=info&name=${encodeURIComponent(name)} (mc/src/components/hooks-view.tsx:419)"}, "properties": {"repobilityId": "52265f206586e690", "scanner": "scanner-primary", "fingerprint": "ff06061bc2a20a78", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d619ab5f53d270f", "level": "error", "message": {"text": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:449)"}, "properties": {"repobilityId": "9ef7934747db54c0", "scanner": "scanner-primary", "fingerprint": "0d619ab5f53d270f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b3752c0d62d08013", "level": "error", "message": {"text": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:475)"}, "properties": {"repobilityId": "702cdb146622ca0e", "scanner": "scanner-primary", "fingerprint": "b3752c0d62d08013", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a2608263c35de7b", "level": "error", "message": {"text": "Dangling fetch: POST /api/hooks (mc/src/components/hooks-view.tsx:498)"}, "properties": {"repobilityId": "f220a13ecbc82972", "scanner": "scanner-primary", "fingerprint": "9a2608263c35de7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a00ac7e8b4315d5", "level": "error", "message": {"text": "Dangling fetch: GET /api/openclaw-update (mc/src/components/openclaw-update-banner.tsx:37)"}, "properties": {"repobilityId": "75ca6eadc587d13a", "scanner": "scanner-primary", "fingerprint": "7a00ac7e8b4315d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dc56110d9c28d6ca", "level": "error", "message": {"text": "Dangling fetch: POST /api/openclaw-update (mc/src/components/openclaw-update-banner.tsx:77)"}, "properties": {"repobilityId": "f0343ad951e257ea", "scanner": "scanner-primary", "fingerprint": "dc56110d9c28d6ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72d68a8075fc16f2", "level": "error", "message": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/channels-view.tsx:201)"}, "properties": {"repobilityId": "9fe610163525e103", "scanner": "scanner-primary", "fingerprint": "72d68a8075fc16f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-66da778042912f39", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/channels-view.tsx:299)"}, "properties": {"repobilityId": "79ef1c2055b46e6d", "scanner": "scanner-primary", "fingerprint": "66da778042912f39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ccf0b86423131ca", "level": "error", "message": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/channels-view.tsx:404)"}, "properties": {"repobilityId": "4c3028c7365fe436", "scanner": "scanner-primary", "fingerprint": "7ccf0b86423131ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce0be8556492b61b", "level": "error", "message": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:122)"}, "properties": {"repobilityId": "a903c2e5c0d7a4c9", "scanner": "scanner-primary", "fingerprint": "ce0be8556492b61b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d90f8a23d24c88d", "level": "error", "message": {"text": "Dangling fetch: GET /api/terminal?action=stream&session=${sessionId} (mc/src/components/terminal-view.tsx:145)"}, "properties": {"repobilityId": "7dd8fc4bd9bf1935", "scanner": "scanner-primary", "fingerprint": "7d90f8a23d24c88d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3db4312ff3a42a3", "level": "error", "message": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:191)"}, "properties": {"repobilityId": "40f9842e189bb7e9", "scanner": "scanner-primary", "fingerprint": "d3db4312ff3a42a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9cd11c4aa3eea1db", "level": "error", "message": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:285)"}, "properties": {"repobilityId": "4c4af7da3d227c77", "scanner": "scanner-primary", "fingerprint": "9cd11c4aa3eea1db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c3226438149eb06", "level": "error", "message": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:316)"}, "properties": {"repobilityId": "3c3e280393c0670e", "scanner": "scanner-primary", "fingerprint": "3c3226438149eb06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38aee194cbc81e6b", "level": "error", "message": {"text": "Dangling fetch: POST /api/terminal (mc/src/components/terminal-view.tsx:337)"}, "properties": {"repobilityId": "17df55cd8632a675", "scanner": "scanner-primary", "fingerprint": "38aee194cbc81e6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73751b88d239530c", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/graph (mc/src/components/memory-graph-view.tsx:1577)"}, "properties": {"repobilityId": "a63fb0a19b3e8070", "scanner": "scanner-primary", "fingerprint": "73751b88d239530c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4e5ccd51c2eb2e2", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory/graph (mc/src/components/memory-graph-view.tsx:1598)"}, "properties": {"repobilityId": "c68be550d81f08b9", "scanner": "scanner-primary", "fingerprint": "a4e5ccd51c2eb2e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf02950b63f18bfc", "level": "error", "message": {"text": "Dangling fetch: GET /api/secrets (mc/src/components/accounts-keys-view.tsx:309)"}, "properties": {"repobilityId": "934ac289f204e335", "scanner": "scanner-primary", "fingerprint": "bf02950b63f18bfc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a4f7b7413250ac3", "level": "error", "message": {"text": "Dangling fetch: POST /api/secrets (mc/src/components/accounts-keys-view.tsx:329)"}, "properties": {"repobilityId": "7acb0adb2a108a10", "scanner": "scanner-primary", "fingerprint": "5a4f7b7413250ac3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-85803c1dea63c70a", "level": "error", "message": {"text": "Dangling fetch: POST /api/secrets (mc/src/components/accounts-keys-view.tsx:357)"}, "properties": {"repobilityId": "3de29e473754a79b", "scanner": "scanner-primary", "fingerprint": "85803c1dea63c70a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c4c182f22c1c3a1", "level": "error", "message": {"text": "Dangling fetch: GET /api/accounts (mc/src/components/accounts-keys-view.tsx:638)"}, "properties": {"repobilityId": "75fec1e0f85cd08c", "scanner": "scanner-primary", "fingerprint": "1c4c182f22c1c3a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c4d780bb3dd44e6f", "level": "error", "message": {"text": "Dangling fetch: POST /api/accounts (mc/src/components/accounts-keys-view.tsx:755)"}, "properties": {"repobilityId": "1a5fa9aa9314639d", "scanner": "scanner-primary", "fingerprint": "c4d780bb3dd44e6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-68e15ed5a104d8f7", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/header.tsx:426)"}, "properties": {"repobilityId": "d6e513f0e7056ec4", "scanner": "scanner-primary", "fingerprint": "68e15ed5a104d8f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ab92a0ffe122799", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/header.tsx:433)"}, "properties": {"repobilityId": "e6d4d6edd08678d1", "scanner": "scanner-primary", "fingerprint": "3ab92a0ffe122799", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d2cfcc1a542dc80f", "level": "error", "message": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/notification-center.tsx:143)"}, "properties": {"repobilityId": "3492adbdf0aedc97", "scanner": "scanner-primary", "fingerprint": "d2cfcc1a542dc80f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b743cee242bfcb44", "level": "error", "message": {"text": "Dangling fetch: GET /api/usage/alerts?poll=1 (mc/src/components/notification-center.tsx:145)"}, "properties": {"repobilityId": "21a08491d6f561ac", "scanner": "scanner-primary", "fingerprint": "b743cee242bfcb44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-655c523c4cd1ce42", "level": "error", "message": {"text": "Dangling fetch: GET /api/browser/relay${qs} (mc/src/components/browser-relay-view.tsx:308)"}, "properties": {"repobilityId": "a7538afeeec041ca", "scanner": "scanner-primary", "fingerprint": "655c523c4cd1ce42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b8446681a61a965", "level": "error", "message": {"text": "Dangling fetch: POST /api/browser/relay (mc/src/components/browser-relay-view.tsx:353)"}, "properties": {"repobilityId": "ee0e3156ea1e008f", "scanner": "scanner-primary", "fingerprint": "2b8446681a61a965", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8669fc938f0dda63", "level": "error", "message": {"text": "Dangling fetch: POST /api/browser/relay (mc/src/components/browser-relay-view.tsx:412)"}, "properties": {"repobilityId": "420cc612d5dbfe3f", "scanner": "scanner-primary", "fingerprint": "8669fc938f0dda63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94110d702f252073", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:283)"}, "properties": {"repobilityId": "5d914ecbc1bca115", "scanner": "scanner-primary", "fingerprint": "94110d702f252073", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba7d20faae33c177", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:296)"}, "properties": {"repobilityId": "f005837fcb766d45", "scanner": "scanner-primary", "fingerprint": "ba7d20faae33c177", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-896075e14e5b8067", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:425)"}, "properties": {"repobilityId": "fe8011b6b865aee1", "scanner": "scanner-primary", "fingerprint": "896075e14e5b8067", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cdca87de2d23c8d4", "level": "error", "message": {"text": "Dangling fetch: GET /api/pairing?_=${Date.now()} (mc/src/components/onboarding-wizard.tsx:478)"}, "properties": {"repobilityId": "e8ac4c08a323dc92", "scanner": "scanner-primary", "fingerprint": "cdca87de2d23c8d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d91d23159db600d", "level": "error", "message": {"text": "Dangling fetch: POST /api/onboard (mc/src/components/onboarding-wizard.tsx:510)"}, "properties": {"repobilityId": "f233f5203dd65f8d", "scanner": "scanner-primary", "fingerprint": "7d91d23159db600d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5010aa65098bf822", "level": "error", "message": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/onboarding-wizard.tsx:530)"}, "properties": {"repobilityId": "22dae6df9a590c4b", "scanner": "scanner-primary", "fingerprint": "5010aa65098bf822", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e77bbbf4b74f5df1", "level": "error", "message": {"text": "Dangling fetch: POST /api/web-search (mc/src/components/web-search-view.tsx:218)"}, "properties": {"repobilityId": "1948a7e0396f73f2", "scanner": "scanner-primary", "fingerprint": "e77bbbf4b74f5df1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9ed4d03aad8cca2", "level": "error", "message": {"text": "Dangling fetch: GET /api/web-search (mc/src/components/web-search-view.tsx:392)"}, "properties": {"repobilityId": "35029afc0bb2669d", "scanner": "scanner-primary", "fingerprint": "c9ed4d03aad8cca2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f2ba0453195988d", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:410)"}, "properties": {"repobilityId": "08a990318dc7647f", "scanner": "scanner-primary", "fingerprint": "4f2ba0453195988d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-619a63e8c49962cb", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:432)"}, "properties": {"repobilityId": "3babe1791495c374", "scanner": "scanner-primary", "fingerprint": "619a63e8c49962cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90dd416cd5d71efc", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/web-search (mc/src/components/web-search-view.tsx:465)"}, "properties": {"repobilityId": "65b28a7db8a05a22", "scanner": "scanner-primary", "fingerprint": "90dd416cd5d71efc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c71b1f76457f67f", "level": "error", "message": {"text": "Dangling fetch: GET /api/vector?scope=documents (mc/src/components/vector-view.tsx:533)"}, "properties": {"repobilityId": "c37bffda17dee594", "scanner": "scanner-primary", "fingerprint": "2c71b1f76457f67f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c4c4e654c27cbfb1", "level": "error", "message": {"text": "Dangling fetch: GET /api/vector?scope=status (mc/src/components/vector-view.tsx:547)"}, "properties": {"repobilityId": "68381335582a0ef5", "scanner": "scanner-primary", "fingerprint": "c4c4e654c27cbfb1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a46fd9be588cbe4", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:603)"}, "properties": {"repobilityId": "611772a57d1be8c7", "scanner": "scanner-primary", "fingerprint": "5a46fd9be588cbe4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c04a8f532c66f2a", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:616)"}, "properties": {"repobilityId": "dce089224df6b123", "scanner": "scanner-primary", "fingerprint": "9c04a8f532c66f2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39f8608d82d74490", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:643)"}, "properties": {"repobilityId": "c7e672d9fa378cb2", "scanner": "scanner-primary", "fingerprint": "39f8608d82d74490", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a9902327c8a1cd7", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:666)"}, "properties": {"repobilityId": "9b97db37e158dd39", "scanner": "scanner-primary", "fingerprint": "1a9902327c8a1cd7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0aa7550d0bd431e6", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:722)"}, "properties": {"repobilityId": "563abcf9de771583", "scanner": "scanner-primary", "fingerprint": "0aa7550d0bd431e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cefb6b39fbb794ae", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/vector-view.tsx:749)"}, "properties": {"repobilityId": "f89e6d252759019b", "scanner": "scanner-primary", "fingerprint": "cefb6b39fbb794ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a0948682df24364", "level": "error", "message": {"text": "Dangling fetch: GET /api/integrations?agentId=${encodeURIComponent(agentId)} (mc/src/components/agents-view.tsx:1222)"}, "properties": {"repobilityId": "0ad464eecac6ac19", "scanner": "scanner-primary", "fingerprint": "4a0948682df24364", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b2a8795b2e72ef1c", "level": "error", "message": {"text": "Dangling fetch: GET /api/skills (mc/src/components/agents-view.tsx:3227)"}, "properties": {"repobilityId": "3cdf254fbd6db9be", "scanner": "scanner-primary", "fingerprint": "b2a8795b2e72ef1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e20b42df27d3fbd5", "level": "error", "message": {"text": "Dangling fetch: GET /api/workspace/files?path=${encodeURIComponent(workspacePath)} (mc/src/components/agents-view.tsx:4188)"}, "properties": {"repobilityId": "02db6b79b0149651", "scanner": "scanner-primary", "fingerprint": "e20b42df27d3fbd5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62dd4a65f52f86d2", "level": "error", "message": {"text": "Dangling fetch: GET /api/onboard (mc/src/components/settings-view.tsx:192)"}, "properties": {"repobilityId": "9bfbf8c8f846ac11", "scanner": "scanner-primary", "fingerprint": "62dd4a65f52f86d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e853bb3c048c8bfa", "level": "error", "message": {"text": "Dangling fetch: GET /api/system (mc/src/components/settings-view.tsx:193)"}, "properties": {"repobilityId": "a8d63f45f7e709a4", "scanner": "scanner-primary", "fingerprint": "e853bb3c048c8bfa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6c0a27c2008fa9fa", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/settings-view.tsx:283)"}, "properties": {"repobilityId": "b3ce6408effa27dd", "scanner": "scanner-primary", "fingerprint": "6c0a27c2008fa9fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-161909d9567b4d1b", "level": "error", "message": {"text": "Dangling fetch: GET /api/doctor/status (mc/src/components/doctor-view.tsx:775)"}, "properties": {"repobilityId": "e01bf9e0c4ec49ea", "scanner": "scanner-primary", "fingerprint": "161909d9567b4d1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78080d93c6cff49a", "level": "error", "message": {"text": "Dangling fetch: GET /api/doctor/history?limit=${limit} (mc/src/components/doctor-view.tsx:789)"}, "properties": {"repobilityId": "dad6538b4aa63836", "scanner": "scanner-primary", "fingerprint": "78080d93c6cff49a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-13db5c6e39d817b5", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/doctor-view.tsx:818)"}, "properties": {"repobilityId": "de73bc7db0975267", "scanner": "scanner-primary", "fingerprint": "13db5c6e39d817b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fd4543f40ded1ee4", "level": "error", "message": {"text": "Dangling fetch: POST /api/doctor/run (mc/src/components/doctor-view.tsx:846)"}, "properties": {"repobilityId": "2ea2a4b109677aa4", "scanner": "scanner-primary", "fingerprint": "fd4543f40ded1ee4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6fc76642afffbab6", "level": "error", "message": {"text": "Dangling fetch: GET /api/chat/bootstrap (mc/src/components/chat-view.tsx:1215)"}, "properties": {"repobilityId": "1c021d7507afb11b", "scanner": "scanner-primary", "fingerprint": "6fc76642afffbab6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e4f3df3e6ba81b7", "level": "error", "message": {"text": "Dangling fetch: GET /api/docs (mc/src/components/docs-view.tsx:430)"}, "properties": {"repobilityId": "77382d58523fdd74", "scanner": "scanner-primary", "fingerprint": "6e4f3df3e6ba81b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0046a0e7b130bab4", "level": "error", "message": {"text": "Dangling fetch: GET /api/docs?path=${encodeURIComponent(target.path)} (mc/src/components/docs-view.tsx:448)"}, "properties": {"repobilityId": "510893c6b51a7cff", "scanner": "scanner-primary", "fingerprint": "0046a0e7b130bab4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5461ac2b7269375a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/docs (mc/src/components/docs-view.tsx:538)"}, "properties": {"repobilityId": "2a294d2f1098eb0c", "scanner": "scanner-primary", "fingerprint": "5461ac2b7269375a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0bc3b751bb9f730", "level": "error", "message": {"text": "Dangling fetch: GET /api/docs?path=${encodeURIComponent(doc.path)} (mc/src/components/docs-view.tsx:591)"}, "properties": {"repobilityId": "c92ffa95f62663bc", "scanner": "scanner-primary", "fingerprint": "a0bc3b751bb9f730", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a51d135fd7e36560", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/docs?path=${encodeURIComponent(doc.path)} (mc/src/components/docs-view.tsx:614)"}, "properties": {"repobilityId": "c8734c11ff47d6b2", "scanner": "scanner-primary", "fingerprint": "a51d135fd7e36560", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0f6e5dd03e74de2", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/docs (mc/src/components/docs-view.tsx:645)"}, "properties": {"repobilityId": "b7ffb0dcbb2a65e0", "scanner": "scanner-primary", "fingerprint": "c0f6e5dd03e74de2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4dec8081c14e99a", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/docs (mc/src/components/docs-view.tsx:679)"}, "properties": {"repobilityId": "03fec4a2258dcf37", "scanner": "scanner-primary", "fingerprint": "a4dec8081c14e99a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-306623d55c5281ed", "level": "error", "message": {"text": "Dangling fetch: POST /api/docs (mc/src/components/docs-view.tsx:708)"}, "properties": {"repobilityId": "4afa2860ed8f25f7", "scanner": "scanner-primary", "fingerprint": "306623d55c5281ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-147dfde96af18abf", "level": "error", "message": {"text": "Dangling fetch: PUT /api/memory (mc/src/components/memory-view.tsx:289)"}, "properties": {"repobilityId": "f40932c35d7f7365", "scanner": "scanner-primary", "fingerprint": "147dfde96af18abf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-044595210da93c7c", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory?file=${encodeURIComponent(file)} (mc/src/components/memory-view.tsx:388)"}, "properties": {"repobilityId": "e62ca07ca7fb0663", "scanner": "scanner-primary", "fingerprint": "044595210da93c7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10740879501b7016", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory?agentMemory=${encodeURIComponent(entry.agentId)} (mc/src/components/memory-view.tsx:419)"}, "properties": {"repobilityId": "c851b646d2167180", "scanner": "scanner-primary", "fingerprint": "10740879501b7016", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ea2c48a67482a40", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory (mc/src/components/memory-view.tsx:455)"}, "properties": {"repobilityId": "cb49641e7616c046", "scanner": "scanner-primary", "fingerprint": "8ea2c48a67482a40", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12f2b2f8f174a192", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/memory?file=${encodeURIComponent(entry.name)} (mc/src/components/memory-view.tsx:496)"}, "properties": {"repobilityId": "073f12bff971133c", "scanner": "scanner-primary", "fingerprint": "12f2b2f8f174a192", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e713662a1cfcea9", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/memory (mc/src/components/memory-view.tsx:532)"}, "properties": {"repobilityId": "afb79c5ae21ae615", "scanner": "scanner-primary", "fingerprint": "3e713662a1cfcea9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ca8e9e5577b5ba50", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/memory (mc/src/components/memory-view.tsx:567)"}, "properties": {"repobilityId": "8931925c26d05be7", "scanner": "scanner-primary", "fingerprint": "ca8e9e5577b5ba50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c6298dc8a7f9bd77", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:598)"}, "properties": {"repobilityId": "22099ddb111c67e0", "scanner": "scanner-primary", "fingerprint": "c6298dc8a7f9bd77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8934e792a2579c4b", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:626)"}, "properties": {"repobilityId": "279805a78bbe22fd", "scanner": "scanner-primary", "fingerprint": "8934e792a2579c4b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-23cec8614fd48937", "level": "error", "message": {"text": "Dangling fetch: GET /api/memory?file=${encodeURIComponent(file.name)}&workspaceRoot=1 (mc/src/components/memory-view.tsx:657)"}, "properties": {"repobilityId": "ef759a569c486e81", "scanner": "scanner-primary", "fingerprint": "23cec8614fd48937", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1409f766a2bb7dcc", "level": "error", "message": {"text": "Dangling fetch: POST /api/vector (mc/src/components/memory-view.tsx:691)"}, "properties": {"repobilityId": "23b39de69ba83296", "scanner": "scanner-primary", "fingerprint": "1409f766a2bb7dcc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d447a7a2f62611b", "level": "error", "message": {"text": "Dangling fetch: POST /api/memory (mc/src/components/memory-view.tsx:715)"}, "properties": {"repobilityId": "46a1cfd0600162fd", "scanner": "scanner-primary", "fingerprint": "3d447a7a2f62611b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-919692ad81c58d4d", "level": "error", "message": {"text": "Dangling fetch: GET /api/ollama/hotstate (mc/src/components/models-view.tsx:246)"}, "properties": {"repobilityId": "3518daf1c0dcc3e8", "scanner": "scanner-primary", "fingerprint": "919692ad81c58d4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e5a44f0ddbe5bac", "level": "error", "message": {"text": "Dangling fetch: GET /api/models/summary (mc/src/components/models-view.tsx:1667)"}, "properties": {"repobilityId": "d9edb0c98b98d81d", "scanner": "scanner-primary", "fingerprint": "0e5a44f0ddbe5bac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62bf7de381758b81", "level": "error", "message": {"text": "Dangling fetch: POST /api/subagents (mc/src/components/subagents-manager-view.tsx:358)"}, "properties": {"repobilityId": "92c908579ab8cef7", "scanner": "scanner-primary", "fingerprint": "62bf7de381758b81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2dc2fc879d375470", "level": "error", "message": {"text": "Dangling fetch: POST /api/subagents (mc/src/components/subagents-manager-view.tsx:406)"}, "properties": {"repobilityId": "93d49719775c15e6", "scanner": "scanner-primary", "fingerprint": "2dc2fc879d375470", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-92abc66b93c37170", "level": "error", "message": {"text": "Dangling fetch: GET /api/gateway (mc/src/components/tailscale-view.tsx:86)"}, "properties": {"repobilityId": "388a81f540633a74", "scanner": "scanner-primary", "fingerprint": "92abc66b93c37170", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bac7ffe098fc3f2c", "level": "error", "message": {"text": "Dangling fetch: GET /api/tailscale (mc/src/components/tailscale-view.tsx:87)"}, "properties": {"repobilityId": "621e7b5f4c2d36e8", "scanner": "scanner-primary", "fingerprint": "bac7ffe098fc3f2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-66382e5d85fed46f", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/components/tailscale-view.tsx:140)"}, "properties": {"repobilityId": "e3024dcb40b625ea", "scanner": "scanner-primary", "fingerprint": "66382e5d85fed46f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-34daafa1401a6f6f", "level": "error", "message": {"text": "Dangling fetch: POST /api/tailscale (mc/src/components/tailscale-view.tsx:214)"}, "properties": {"repobilityId": "35331f0626c71cf2", "scanner": "scanner-primary", "fingerprint": "34daafa1401a6f6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8670167c1810ae51", "level": "error", "message": {"text": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:115)"}, "properties": {"repobilityId": "33786e22028df749", "scanner": "scanner-primary", "fingerprint": "8670167c1810ae51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dcc68d9da45943eb", "level": "error", "message": {"text": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:150)"}, "properties": {"repobilityId": "e18c472669c496fb", "scanner": "scanner-primary", "fingerprint": "dcc68d9da45943eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-74699da0584e0870", "level": "error", "message": {"text": "Dangling fetch: PUT /api/tasks (mc/src/components/tasks-view.tsx:175)"}, "properties": {"repobilityId": "2d3d4a303f366997", "scanner": "scanner-primary", "fingerprint": "74699da0584e0870", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e4999c89eae21e8a", "level": "error", "message": {"text": "Dangling fetch: POST /api/tasks (mc/src/components/tasks-view.tsx:262)"}, "properties": {"repobilityId": "e2e1d57f0b75ba79", "scanner": "scanner-primary", "fingerprint": "e4999c89eae21e8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ac7915c24532e5d", "level": "error", "message": {"text": "Dangling fetch: GET /api/tasks (mc/src/components/tasks-view.tsx:269)"}, "properties": {"repobilityId": "e758deb6c459f5ff", "scanner": "scanner-primary", "fingerprint": "8ac7915c24532e5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c297b0fd401aa9f", "level": "error", "message": {"text": "Dangling fetch: POST /api/tasks (mc/src/components/tasks-view.tsx:1174)"}, "properties": {"repobilityId": "93531e369b3069e9", "scanner": "scanner-primary", "fingerprint": "8c297b0fd401aa9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72798b12fab8e964", "level": "error", "message": {"text": "Dangling fetch: GET /api/pairing (mc/src/components/pairing-notifications.tsx:286)"}, "properties": {"repobilityId": "9e144580ec02a7c1", "scanner": "scanner-primary", "fingerprint": "72798b12fab8e964", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37de44a08045415b", "level": "error", "message": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:335)"}, "properties": {"repobilityId": "4409749eb054ff42", "scanner": "scanner-primary", "fingerprint": "37de44a08045415b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3715d4159a3bc679", "level": "error", "message": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:360)"}, "properties": {"repobilityId": "bcdfe5c854fe96c4", "scanner": "scanner-primary", "fingerprint": "3715d4159a3bc679", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7346eec6426f9860", "level": "error", "message": {"text": "Dangling fetch: POST /api/pairing (mc/src/components/pairing-notifications.tsx:385)"}, "properties": {"repobilityId": "48b5be11dd8d3174", "scanner": "scanner-primary", "fingerprint": "7346eec6426f9860", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4ec5bba62beb56ea", "level": "error", "message": {"text": "Dangling fetch: GET /api/heartbeat (mc/src/components/heartbeat-manager.tsx:953)"}, "properties": {"repobilityId": "c7c7f67d0822a326", "scanner": "scanner-primary", "fingerprint": "4ec5bba62beb56ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-879a5f5a6ab8a485", "level": "error", "message": {"text": "Dangling fetch: POST /api/heartbeat (mc/src/components/heartbeat-manager.tsx:1011)"}, "properties": {"repobilityId": "23e4b54c436de91e", "scanner": "scanner-primary", "fingerprint": "879a5f5a6ab8a485", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a84c202c9b0d379", "level": "error", "message": {"text": "Dangling fetch: POST /api/heartbeat (mc/src/components/heartbeat-manager.tsx:1107)"}, "properties": {"repobilityId": "092067d91c4de099", "scanner": "scanner-primary", "fingerprint": "5a84c202c9b0d379", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f98dc41a7954a0fe", "level": "error", "message": {"text": "Dangling fetch: GET /api/permissions (mc/src/components/permissions-view.tsx:185)"}, "properties": {"repobilityId": "586f0f7ff9130025", "scanner": "scanner-primary", "fingerprint": "f98dc41a7954a0fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d88dac54603162b", "level": "error", "message": {"text": "Dangling fetch: POST /api/permissions (mc/src/components/permissions-view.tsx:222)"}, "properties": {"repobilityId": "4777d62b25ec4ab6", "scanner": "scanner-primary", "fingerprint": "4d88dac54603162b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f59a21c2c8de05d", "level": "error", "message": {"text": "Dangling fetch: GET /api/usage/alerts?poll=1 (mc/src/components/usage-alert-monitor.tsx:22)"}, "properties": {"repobilityId": "1483dee0c2b97d30", "scanner": "scanner-primary", "fingerprint": "7f59a21c2c8de05d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4785b09371d2f0ce", "level": "error", "message": {"text": "Dangling fetch: GET https://api.telegram.org/bot${botToken}/getMe (mc/src/app/api/onboard/route.ts:648)"}, "properties": {"repobilityId": "cc974057ffdc9a7b", "scanner": "scanner-primary", "fingerprint": "4785b09371d2f0ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f682e7fd79dbd50", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/users/@me (mc/src/app/api/onboard/route.ts:662)"}, "properties": {"repobilityId": "5bff5506e6408ee4", "scanner": "scanner-primary", "fingerprint": "8f682e7fd79dbd50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea08192302b8421b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (mc/src/app/api/memory/graph/route.ts:400)"}, "properties": {"repobilityId": "5ec156a62a2de081", "scanner": "scanner-primary", "fingerprint": "ea08192302b8421b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57369df7b77436dd", "level": "error", "message": {"text": "Dangling fetch: GET https://registry.npmjs.org/@openclaw%2Fdashboard/latest (mc/src/app/api/mission-control-update/route.ts:144)"}, "properties": {"repobilityId": "39eb4ac86b1d3e44", "scanner": "scanner-primary", "fingerprint": "57369df7b77436dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a30fb3a1f5a7877", "level": "error", "message": {"text": "Dangling fetch: POST /api/gateway (mc/src/lib/restart-store.ts:17)"}, "properties": {"repobilityId": "f2be074eb57e155c", "scanner": "scanner-primary", "fingerprint": "1a30fb3a1f5a7877", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c19547c39bfc686c", "level": "error", "message": {"text": "Dangling fetch: GET /api/gateway (mc/src/lib/gateway-status-store.ts:132)"}, "properties": {"repobilityId": "8fe6782488e73a55", "scanner": "scanner-primary", "fingerprint": "c19547c39bfc686c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d6ea38c36ed5931", "level": "error", "message": {"text": "Dangling fetch: GET https://openrouter.ai/api/v1/models (mc/src/lib/openrouter-pricing.ts:73)"}, "properties": {"repobilityId": "b068ffcb77af4bf6", "scanner": "scanner-primary", "fingerprint": "4d6ea38c36ed5931", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1dd79b6bef9ce495", "level": "note", "message": {"text": "Unused endpoint: USE /api/buddy"}, "properties": {"repobilityId": "996ddd60528ce664", "scanner": "scanner-primary", "fingerprint": "1dd79b6bef9ce495", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "71fb7ee7c3a6724f", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ffc9ad08ed6cdd74", "level": "note", "message": {"text": "Unused endpoint: GET /documents"}, "properties": {"repobilityId": "d48a8a87e350da46", "scanner": "scanner-primary", "fingerprint": "ffc9ad08ed6cdd74", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e5ac5e94b66deac", "level": "note", "message": {"text": "Unused endpoint: GET /upload"}, "properties": {"repobilityId": "24dea2b8c1dd5171", "scanner": "scanner-primary", "fingerprint": "4e5ac5e94b66deac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2b47f92cb1ccc70", "level": "note", "message": {"text": "Unused endpoint: GET /maintenance"}, "properties": {"repobilityId": "37c6fbd98dc07dee", "scanner": "scanner-primary", "fingerprint": "d2b47f92cb1ccc70", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-21cf56c09f860b64", "level": "note", "message": {"text": "Unused endpoint: GET /index.html"}, "properties": {"repobilityId": "4e71651000bffb50", "scanner": "scanner-primary", "fingerprint": "21cf56c09f860b64", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fe7d4f395a09d9e0", "level": "note", "message": {"text": "Unused endpoint: GET /documents.html"}, "properties": {"repobilityId": "87901b4f291d1169", "scanner": "scanner-primary", "fingerprint": "fe7d4f395a09d9e0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea66ab04e23f7e64", "level": "note", "message": {"text": "Unused endpoint: GET /search.html"}, "properties": {"repobilityId": "767bfc12123ce7ad", "scanner": "scanner-primary", "fingerprint": "ea66ab04e23f7e64", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-05be2d39c42c2592", "level": "note", "message": {"text": "Unused endpoint: GET /upload.html"}, "properties": {"repobilityId": "a4beba40a519795c", "scanner": "scanner-primary", "fingerprint": "05be2d39c42c2592", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0ed8fd7ed100853e", "level": "note", "message": {"text": "Unused endpoint: GET /maintenance.html"}, "properties": {"repobilityId": "299f9e2b681854ee", "scanner": "scanner-primary", "fingerprint": "0ed8fd7ed100853e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e5d473870d5f50c0", "level": "note", "message": {"text": "Unused endpoint: USE /api/rag"}, "properties": {"repobilityId": "4017e88fcf43270c", "scanner": "scanner-primary", "fingerprint": "e5d473870d5f50c0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6bf899e37f5c9154", "level": "note", "message": {"text": "Unused endpoint: POST /snapshots"}, "properties": {"repobilityId": "c524fafd22887c64", "scanner": "scanner-primary", "fingerprint": "6bf899e37f5c9154", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-93e03e0a8ca16fd4", "level": "note", "message": {"text": "Unused endpoint: GET /snapshots"}, "properties": {"repobilityId": "695032e000a23d1d", "scanner": "scanner-primary", "fingerprint": "93e03e0a8ca16fd4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-490dd18f2c1835fe", "level": "note", "message": {"text": "Unused endpoint: DELETE /snapshots/:name"}, "properties": {"repobilityId": "7efcb9ddecd0a2ed", "scanner": "scanner-primary", "fingerprint": "490dd18f2c1835fe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9dcc052f40e3fd6e", "level": "note", "message": {"text": "Unused endpoint: POST /snapshots/:name/restore"}, "properties": {"repobilityId": "feb34654ff71af28", "scanner": "scanner-primary", "fingerprint": "9dcc052f40e3fd6e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-65a667bcc38fb792", "level": "note", "message": {"text": "Unused endpoint: POST /ingest"}, "properties": {"repobilityId": "1877856454b3bdae", "scanner": "scanner-primary", "fingerprint": "65a667bcc38fb792", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee82d381f92e9834", "level": "note", "message": {"text": "Unused endpoint: POST /documents"}, "properties": {"repobilityId": "74bf900f595b46c6", "scanner": "scanner-primary", "fingerprint": "ee82d381f92e9834", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1bc16c3e0434a6cf", "level": "note", "message": {"text": "Unused endpoint: POST /ingest/batch"}, "properties": {"repobilityId": "ead785af21408f73", "scanner": "scanner-primary", "fingerprint": "1bc16c3e0434a6cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c4ee59bebdd84785", "level": "note", "message": {"text": "Unused endpoint: POST /ingest-scan"}, "properties": {"repobilityId": "1464dc1b2a9de280", "scanner": "scanner-primary", "fingerprint": "c4ee59bebdd84785", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1f9dbfe6a10ed4e2", "level": "note", "message": {"text": "Unused endpoint: GET /ingest-scan/:jobId"}, "properties": {"repobilityId": "e8a9a33a68d0bc51", "scanner": "scanner-primary", "fingerprint": "1f9dbfe6a10ed4e2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d1f890e605c46a99", "level": "note", "message": {"text": "Unused endpoint: DELETE /ingest-scan/:jobId"}, "properties": {"repobilityId": "99709ff81b71aa6e", "scanner": "scanner-primary", "fingerprint": "d1f890e605c46a99", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-17a164638609b114", "level": "note", "message": {"text": "Unused endpoint: POST /search"}, "properties": {"repobilityId": "390b03bcf9e0c3af", "scanner": "scanner-primary", "fingerprint": "17a164638609b114", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-30ebcb9eb80baa29", "level": "note", "message": {"text": "Unused endpoint: DELETE /documents/:documentId"}, "properties": {"repobilityId": "1e0423355bf789b0", "scanner": "scanner-primary", "fingerprint": "30ebcb9eb80baa29", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ad68c06f5b5283a", "level": "note", "message": {"text": "Unused endpoint: POST /cache/clear"}, "properties": {"repobilityId": "d16d03d9f98e7b0b", "scanner": "scanner-primary", "fingerprint": "3ad68c06f5b5283a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7d3847589d32a25", "level": "note", "message": {"text": "Unused endpoint: POST /manifests"}, "properties": {"repobilityId": "64b35acbab846b34", "scanner": "scanner-primary", "fingerprint": "a7d3847589d32a25", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-22e718c9602aa7b3", "level": "note", "message": {"text": "Unused endpoint: GET /manifests/latest"}, "properties": {"repobilityId": "2b15ffb3e92bb3c0", "scanner": "scanner-primary", "fingerprint": "22e718c9602aa7b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b17fb1f189a7a525", "level": "note", "message": {"text": "Unused endpoint: GET /deletion-preview"}, "properties": {"repobilityId": "7bc9753d76a775ff", "scanner": "scanner-primary", "fingerprint": "b17fb1f189a7a525", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09da8787bc214335", "level": "note", "message": {"text": "Unused endpoint: POST /cleanup"}, "properties": {"repobilityId": "3f5e33839da61206", "scanner": "scanner-primary", "fingerprint": "09da8787bc214335", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-26f53d6e5ee1ff5c", "level": "note", "message": {"text": "Unused endpoint: GET /embedding-migration/status"}, "properties": {"repobilityId": "86158c0fc72cf031", "scanner": "scanner-primary", "fingerprint": "26f53d6e5ee1ff5c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6e274b3b5af3a53", "level": "note", "message": {"text": "Unused endpoint: POST /embedding-migration/reindex"}, "properties": {"repobilityId": "34e7dcd19a06ec6f", "scanner": "scanner-primary", "fingerprint": "a6e274b3b5af3a53", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa2aee986d00b87f", "level": "note", "message": {"text": "Unused endpoint: GET /embedding-migration/reindex/:jobId"}, "properties": {"repobilityId": "f8de093d75d6aed3", "scanner": "scanner-primary", "fingerprint": "aa2aee986d00b87f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0684d1ce52b578b1", "level": "note", "message": {"text": "Unused endpoint: GET /documents/:id"}, "properties": {"repobilityId": "6d79a463dc254d7c", "scanner": "scanner-primary", "fingerprint": "0684d1ce52b578b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f7fc1bd678f789e", "level": "note", "message": {"text": "Unused endpoint: GET /documents/:id/chunks"}, "properties": {"repobilityId": "4aba3104cee91a2f", "scanner": "scanner-primary", "fingerprint": "2f7fc1bd678f789e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c676a36bf4ef0884", "level": "note", "message": {"text": "Unused endpoint: GET /telemetry/ingest"}, "properties": {"repobilityId": "63495683b7253469", "scanner": "scanner-primary", "fingerprint": "c676a36bf4ef0884", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b5d4b410cfe75bb3", "level": "note", "message": {"text": "Unused endpoint: GET /telemetry/ingest/summary"}, "properties": {"repobilityId": "804515e88bd6287e", "scanner": "scanner-primary", "fingerprint": "b5d4b410cfe75bb3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-add6dcb6007baef6", "level": "note", "message": {"text": "Unused endpoint: GET /leaderboard"}, "properties": {"repobilityId": "c4a70b8be9282035", "scanner": "scanner-primary", "fingerprint": "add6dcb6007baef6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a01192d96724fed1", "level": "note", "message": {"text": "Unused endpoint: GET /courthouse"}, "properties": {"repobilityId": "73e5624635906b11", "scanner": "scanner-primary", "fingerprint": "a01192d96724fed1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0b41c75dbacff0af", "level": "note", "message": {"text": "Unused endpoint: GET /profiler"}, "properties": {"repobilityId": "91f816a16691519e", "scanner": "scanner-primary", "fingerprint": "0b41c75dbacff0af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b76598081509cd69", "level": "note", "message": {"text": "Unused endpoint: GET /efficiency-map"}, "properties": {"repobilityId": "ed9e1974e7ebc780", "scanner": "scanner-primary", "fingerprint": "b76598081509cd69", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c0fda45dbda23206", "level": "note", "message": {"text": "Unused endpoint: GET /results-explorer"}, "properties": {"repobilityId": "cb4b39035dfeb785", "scanner": "scanner-primary", "fingerprint": "c0fda45dbda23206", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d86afd7dd2beb431", "level": "note", "message": {"text": "Unused endpoint: GET /setup"}, "properties": {"repobilityId": "a71d8885d605de2f", "scanner": "scanner-primary", "fingerprint": "d86afd7dd2beb431", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3c51ae78b646206b", "level": "note", "message": {"text": "Unused endpoint: GET /benchmark-v2.html"}, "properties": {"repobilityId": "98d5d398e67f10ed", "scanner": "scanner-primary", "fingerprint": "3c51ae78b646206b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c42c8c48e8eb0df1", "level": "note", "message": {"text": "Unused endpoint: GET /leaderboard-v2.html"}, "properties": {"repobilityId": "8399aeffffe3cda3", "scanner": "scanner-primary", "fingerprint": "c42c8c48e8eb0df1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-46e839d2ce7be0d7", "level": "note", "message": {"text": "Unused endpoint: GET /courthouse-v2.html"}, "properties": {"repobilityId": "8f70203ab763c4dc", "scanner": "scanner-primary", "fingerprint": "46e839d2ce7be0d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-88678f008acf51e5", "level": "note", "message": {"text": "Unused endpoint: GET /model-profiler.html"}, "properties": {"repobilityId": "42a01a3e6d7f3317", "scanner": "scanner-primary", "fingerprint": "88678f008acf51e5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-23086e9566b07b1a", "level": "note", "message": {"text": "Unused endpoint: GET /efficiency-map.html"}, "properties": {"repobilityId": "4f5120da8078c9f4", "scanner": "scanner-primary", "fingerprint": "23086e9566b07b1a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-328c6bb8302b8b3c", "level": "note", "message": {"text": "Unused endpoint: GET /results-explorer.html"}, "properties": {"repobilityId": "70fe0359521dbe7e", "scanner": "scanner-primary", "fingerprint": "328c6bb8302b8b3c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a8ef0a98dcca64a3", "level": "note", "message": {"text": "Unused endpoint: GET /setup.html"}, "properties": {"repobilityId": "1f91fb88f416dd27", "scanner": "scanner-primary", "fingerprint": "a8ef0a98dcca64a3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8b0cc3d8f33001f8", "level": "note", "message": {"text": "Unused endpoint: GET /api/ollama-hosts"}, "properties": {"repobilityId": "c38eeaff09650cf5", "scanner": "scanner-primary", "fingerprint": "8b0cc3d8f33001f8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ef460857e9b680a8", "level": "note", "message": {"text": "Unused endpoint: USE /api/setup"}, "properties": {"repobilityId": "de6a125f95569c22", "scanner": "scanner-primary", "fingerprint": "ef460857e9b680a8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}