{"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-fc13063b5459ced5", "name": "Stray `console.log` in TS/JS \u2014 tests/load/sync-concurrency-test.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/sync-concurrency-test.js:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f4a2b7939cc698f", "name": "Stray `console.log` in TS/JS \u2014 tests/load/mcp-throughput-test.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/mcp-throughput-test.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-ab79032691d0b9ea", "name": "Stray `console.log` in TS/JS \u2014 tests/load/index-query-test.js:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/index-query-test.js:80"}, "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-059505190f16b08a", "name": "Stray `console.log` in TS/JS \u2014 tests/load/api-stress-test.js:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/api-stress-test.js:78"}, "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-9254864d9c8535bc", "name": "Stray `console.log` in TS/JS \u2014 tests/e2e/slice-canonical-questions.spec.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/e2e/slice-canonical-questions.spec.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ec80301a54255e3", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/db/migrate.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/db/migrate.ts:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b74665d073d7985", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/schema-field-mapper.tsx:183", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/schema-field-mapper.tsx:183"}, "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-18bbe64fd26e8522", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/staleness-alerts-panel.tsx:87", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/staleness-alerts-panel.tsx:87"}, "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-320e4111acd9d854", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/search-result-item.tsx:76", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/search-result-item.tsx:76"}, "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-ed9eb27a9cb83540", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/components/search-result-item.tsx:77", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/components/search-result-item.tsx:77"}, "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-5b12505adf857229", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/prefetch-recommendations.tsx:69", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/prefetch-recommendations.tsx:69"}, "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-1b510508c35637c5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dlq-pattern-analysis.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dlq-pattern-analysis.tsx:48"}, "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-3be35dda7fe87b18", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dashboard-layout.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dashboard-layout.tsx:68"}, "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-e15ac0ae784295de", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/response-format-analytics.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/response-format-analytics.tsx:50"}, "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-0c3c6d7895e28f31", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-lineage-viewer.tsx:115", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-lineage-viewer.tsx:115"}, "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-5cf0e253a18a1c15", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/context-search-panel.tsx:96", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/context-search-panel.tsx:96"}, "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-8ff0fc37ebdafb9e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/group-analysis-results.tsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/group-analysis-results.tsx:125"}, "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-e2d0fdd1f956fb13", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/alert-action-logger.tsx:132", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/alert-action-logger.tsx:132"}, "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-f63507bc300be748", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-hit-timeline.tsx:25", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-hit-timeline.tsx:25"}, "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-277fb5f791758f90", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/transformation-rule-editor.tsx:312", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/transformation-rule-editor.tsx:312"}, "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-e85684b2730e504e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/ab-test-runner.tsx:154", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/ab-test-runner.tsx:154"}, "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-79f85470a230601b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-efficiency-heatmap.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-efficiency-heatmap.tsx:74"}, "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-f6e356208d1a3471", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/data-quality-issues-table.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/data-quality-issues-table.tsx:56"}, "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-04eb4c0907d2e3d7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-stats-panel.tsx:142", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-stats-panel.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-74ac259e02ea8b23", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/relevance-tuner-panel.tsx:107", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/relevance-tuner-panel.tsx:107"}, "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-014f00f65e4aabcd", "name": "Icon-only button without accessible name \u2014 apps/dashboard/components/connector-detail-modal.tsx:108", "shortDescription": {"text": "Icon-only button without accessible name \u2014 apps/dashboard/components/connector-detail-modal.tsx:108"}, "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-5635746938b4352d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-reconciliation-panel.tsx:87", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-reconciliation-panel.tsx:87"}, "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-7ccc3deb7835050b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/recent-workflows-list.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/recent-workflows-list.tsx:62"}, "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-549294c1f66e616d", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/composition-charts.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/composition-charts.tsx:64"}, "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-f9a929e7ee76917b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/query-expansion-interface.tsx:153", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/query-expansion-interface.tsx:153"}, "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-5dea82a301610330", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dlq-event-table.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dlq-event-table.tsx:32"}, "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-c692b5675aa84599", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/webhook-delivery-status.tsx:137", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/webhook-delivery-status.tsx:137"}, "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-bf5467627ce1c958", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/connector-detail-panel.tsx:65", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/connector-detail-panel.tsx:65"}, "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-efe838a4d93e7995", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/streaming-preview-panel.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/streaming-preview-panel.tsx:139"}, "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-9bc7ac487e7419f7", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cost-breakdown-charts.tsx:66", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cost-breakdown-charts.tsx:66"}, "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-9735306ed3ce68dd", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/batch-context-panel.tsx:103", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/batch-context-panel.tsx:103"}, "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-0e1012edaffaf23b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/relationship-suggestions-widget.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/relationship-suggestions-widget.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-297b43ad5cc8cca3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-throughput-gauge.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-throughput-gauge.tsx:67"}, "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-ad91ed7e64f795f3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/sync-queue-status.tsx:65", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/sync-queue-status.tsx:65"}, "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-d621192d1e6b67f6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/ranking-explainer.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/ranking-explainer.tsx:106"}, "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-6ead6349f5f02600", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/sync-monitoring-dashboard.tsx:138", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/sync-monitoring-dashboard.tsx:138"}, "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-1766b5dcc261a203", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/email-template-editor.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/email-template-editor.tsx:169"}, "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-ccf87bc68148c454", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/components/email-template-editor.tsx:256", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/components/email-template-editor.tsx:256"}, "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-9f85d24be901dd0f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/optimization-history-chart.tsx:100", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/optimization-history-chart.tsx:100"}, "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-d00dc117a3ace3b2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/context-suggestions-widget.tsx:136", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/context-suggestions-widget.tsx:136"}, "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-bcb1a7656d6810f1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-comparison-panel.tsx:102", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-comparison-panel.tsx:102"}, "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-06c9cffa9cf43a6f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dependency-graph.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dependency-graph.tsx:90"}, "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-46482fb461efcc60", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/deprecation-tracker.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/deprecation-tracker.tsx:37"}, "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-d270cf40932c032b", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/trace-flame-graph.tsx:31", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/trace-flame-graph.tsx:31"}, "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-0ff961440a6386bf", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-access-heatmap.tsx:43", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-access-heatmap.tsx:43"}, "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-b8182e1d7ab553c5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/workflow-template-gallery.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/workflow-template-gallery.tsx:91"}, "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-5cc926c7dc6c531e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/templates/page.tsx:152", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/templates/page.tsx:152"}, "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-cc83fa44004d01b3", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/performance/page.tsx:172", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/performance/page.tsx:172"}, "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-441b639ddf0d44ea", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/retention/page.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/retention/page.tsx:139"}, "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-126df00f4596cf63", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/metrics/computed-metrics/page.tsx:133", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/metrics/computed-metrics/page.tsx:133"}, "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-6b79090d6c2071b5", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/team-insights/page.tsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/team-insights/page.tsx:116"}, "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-7f88b965f485cefb", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/queries/page.tsx:65", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/queries/page.tsx:65"}, "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-9d92120efdadebe4", "name": "Stray `console.log` in TS/JS \u2014 apps/dashboard/app/developers/sdk-portal/page.tsx:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/app/developers/sdk-portal/page.tsx:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d3760e44b826fc4", "name": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/eval-retrieval.ts:151", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/eval-retrieval.ts:151"}, "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-fbd37a7fa0ea7faf", "name": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/mcp-smoke.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/mcp-smoke.ts:59"}, "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-7d5a9450c67ae28f", "name": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/slice-query-client.ts:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/slice-query-client.ts:108"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b34ef00d4251462e", "name": "Stray `console.log` in TS/JS \u2014 scripts/slice2-demo.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/slice2-demo.ts:87"}, "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-4757952a87dda9de", "name": "Stray `console.log` in TS/JS \u2014 scripts/slice-sim.ts:105", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/slice-sim.ts:105"}, "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-1fd6100154c0a1d5", "name": "Stray `console.log` in TS/JS \u2014 scripts/slice-demo.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/slice-demo.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-781e108e904c850b", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/inspect-index.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/inspect-index.ts:48"}, "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-9e2513e204b8e4be", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/index.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/index.ts:49"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c488b24a714e3704", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/debug-mcp.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/debug-mcp.ts:13"}, "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-0ecaf93aa8efa999", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/simulate-sync.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/simulate-sync.ts:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eebf88fcbded53fd", "name": "Stray `console.log` in TS/JS \u2014 scripts/cli/test-connector.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/test-connector.ts:32"}, "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-49356235d4f3e39d", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/query-expansion-e", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/query-expansion-engine.ts:141"}, "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-f16554874f5b5b88", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/batch-operations.", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/batch-operations.ts:201"}, "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-e71c3be7f685273c", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/vector-store.ts:2", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/vector-store.ts:224"}, "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-3da195390a7df43a", "name": "Stray `console.log` in TS/JS \u2014 packages/semantic-core/src/providers/__tests__/ollama-provider.integration.test.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/semantic-core/src/providers/__tests__/ollama-provider.integration.test.ts: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-085db3a71299b831", "name": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/components/search-result-item.tsx:77", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/components/search-result-item.tsx:77"}, "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-4d57c35a2bd5f7dd", "name": "Insecure pattern 'cors_wildcard' in apps/mcp-server/src/http-server.ts:64", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in apps/mcp-server/src/http-server.ts:64"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8a602f5b04ace98", "name": "Insecure pattern 'node_child_process' in scripts/mcp-smoke.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/mcp-smoke.ts:17"}, "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-a63c123d8b84e891", "name": "Insecure pattern 'node_child_process' in scripts/slice2-demo.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/slice2-demo.ts:19"}, "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-825ed93aa32d5145", "name": "Insecure pattern 'node_child_process' in scripts/slice-demo.ts:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/slice-demo.ts:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fdcce33c8da2405", "name": "Insecure pattern 'node_child_process' in scripts/cli/debug-mcp.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/cli/debug-mcp.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-4c3da5ab57487a35", "name": "Insecure pattern 'node_child_process' in scripts/cli/test-connector.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/cli/test-connector.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-571278fa2ad6db43", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/cache@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-59d5aff36e9a421d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@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-1c90d8b0520c508e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2a53c791c10d1ac", "name": "Node manifest has dependencies but no lockfile: tests/load/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: tests/load/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b06b8d86f24c77f9", "name": "Node manifest has dependencies but no lockfile: apps/api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/api/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec82f9367de34433", "name": "Node manifest has dependencies but no lockfile: apps/dashboard/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/dashboard/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e7b2bc4b44100d7a", "name": "Node manifest has dependencies but no lockfile: apps/mcp-server/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/mcp-server/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1aa71543363b5bf", "name": "Node manifest has dependencies but no lockfile: packages/compression/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/compression/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2aa3d1a45f2330a", "name": "Node manifest has dependencies but no lockfile: packages/semantic-core/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/semantic-core/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c330837e73b7dd9", "name": "Node manifest has dependencies but no lockfile: packages/connectors/jira/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/jira/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8487746aedab801e", "name": "Node manifest has dependencies but no lockfile: packages/connectors/github/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/github/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cdf09e205451537", "name": "Node manifest has dependencies but no lockfile: packages/connectors/notion/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/notion/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8775c84bbaac795f", "name": "Node manifest has dependencies but no lockfile: packages/connectors/salesforce/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/salesforce/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3832885bd645bb", "name": "Node manifest has dependencies but no lockfile: packages/connectors/airtable/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/airtable/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4b57384a42b6fab", "name": "Node manifest has dependencies but no lockfile: packages/connectors/google-drive/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/google-drive/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2d988f79c1c1bd9", "name": "Node manifest has dependencies but no lockfile: packages/connectors/snowflake/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/snowflake/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fccfb19cf3705a6e", "name": "Node manifest has dependencies but no lockfile: packages/connectors/netsuite/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/netsuite/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e504ec3a82e30f9b", "name": "Node manifest has dependencies but no lockfile: packages/connectors/postgres/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/postgres/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-802425e7f1522826", "name": "Node manifest has dependencies but no lockfile: packages/connectors/quickbooks/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/quickbooks/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1788d50f260451f1", "name": "Node manifest has dependencies but no lockfile: packages/connectors/linear/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/linear/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f4fc9d96fd4b16da", "name": "Node manifest has dependencies but no lockfile: packages/connectors/hubspot/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/hubspot/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5d9b27afb3a4453", "name": "Node manifest has dependencies but no lockfile: packages/connectors/confluence/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/confluence/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ddc8b054c34b5230", "name": "Node manifest has dependencies but no lockfile: packages/connectors/slack/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/slack/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17758973a65e7db1", "name": "Node manifest has dependencies but no lockfile: packages/cache/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/cache/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d154c5965f2d4b2e", "name": "Node manifest has dependencies but no lockfile: packages/generated-sdks/typescript-sdk/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/generated-sdks/typescript-sdk/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e8eeaea1067ef6eb", "name": "Node manifest has dependencies but no lockfile: packages/queue/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/queue/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b9e9f25057bbb6c", "name": "Node manifest has dependencies but no lockfile: packages/connector-sdk/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/connector-sdk/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28e92806c0db3cd2", "name": "Node manifest has dependencies but no lockfile: packages/core/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/core/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d7c3f19978cb63d", "name": "Node manifest has dependencies but no lockfile: packages/graph/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/graph/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 126 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 196 placeholder/mock markers across 107 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "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-8769bcc771831214", "name": "Agent instruction contains unpinned remote install: .claude/settings.json", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/settings.json"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a41a27c6d52c344e", "name": "Agent authority lacks a verifier contract: .claude/rules/embedding-patterns.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/embedding-patterns.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-19f18bdc1ea8040d", "name": "Agent authority lacks a verifier contract: .claude/agents/security-auditor.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/security-auditor.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-3d68f4cb01eb3b05", "name": "Agent authority lacks a verifier contract: .claude/agents/migration-writer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/migration-writer.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-dc1aa5a1ab693e01", "name": "Commented-code block (5 lines) in tests/e2e/slice-canonical-questions.spec.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/slice-canonical-questions.spec.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bf3c1b7df204629", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/analytics-pipeline.test.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/analytics-pipeline.test.ts:41"}, "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-e6440df5f66ffad8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/backup-recovery.test.ts:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/backup-recovery.test.ts:62"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6204ee1a72aa95f7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/entity-lifecycle.test.ts:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/entity-lifecycle.test.ts:42"}, "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-b4acaa5e134e7934", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/ha-admin.test.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/ha-admin.test.ts: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-f79e14f0de50acad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/context-deltas.test.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/context-deltas.test.ts:46"}, "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-58d6b029dc4167ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/quota-management.test.ts:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/quota-management.test.ts:48"}, "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-6c197e0dc654bbac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/permission-management.test.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/permission-management.test.ts: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-19450b1d7fce2247", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/webhook-dlq-admin.test.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/webhook-dlq-admin.test.ts: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-123fe119cf330bce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/query-analytics.test.ts:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/query-analytics.test.ts: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-2b7b896134769b2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/mcp-tool-discovery.test.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/mcp-tool-discovery.test.ts:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-531030de0a79565b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/schema-migrations.test.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/schema-migrations.test.ts:59"}, "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-c88a0a0803eaf4c5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/admin-dedup.test.ts:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/admin-dedup.test.ts:69"}, "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-e89bc705fd826a62", "name": "Legacy-named symbol `isDeprecated` in apps/api/src/__tests__/mcp-tools.test.ts:135", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in apps/api/src/__tests__/mcp-tools.test.ts:135"}, "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-47bd85ec8242cc09", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/api-version-admin.test.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/api-version-admin.test.ts:30"}, "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-63c999be651d4b6b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/sso-config.test.ts:102", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/sso-config.test.ts:102"}, "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-7ddbb0ebf766c837", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/validation-failure-explorer.tsx:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/validation-failure-explorer.tsx:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0552e2f19810ced5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/event-stream-monitor.tsx:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/event-stream-monitor.tsx:56"}, "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-c554d385722715ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-resilience-config.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-resilience-config.tsx: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-c31b19c35a7ec255", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/audit-log-viewer.tsx:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/audit-log-viewer.tsx:47"}, "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-79dcd1f7c57fb99e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/audit-export-wizard.tsx:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/audit-export-wizard.tsx:42"}, "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-9e1e1ecd61298355", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/real-time-log-viewer.tsx:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/real-time-log-viewer.tsx:54"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c37ee4368cd1f238", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/change-metrics.tsx:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/change-metrics.tsx:62"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29fbd6aaa7dabcdf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/advanced-query-builder.tsx:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/advanced-query-builder.tsx:100"}, "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-ded934bd814bef57", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/group-analysis-results.tsx:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/group-analysis-results.tsx: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-9018cde04326ee74", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/sync-quality-monitor.tsx:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/sync-quality-monitor.tsx:78"}, "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-1aa9ea56ba57d56c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/freshness-compliance-heatmap.tsx:33", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/freshness-compliance-heatmap.tsx:33"}, "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-a4b0f1c4ebe882c6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/transformation-rule-editor.tsx:166", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/transformation-rule-editor.tsx:166"}, "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-18567791b9680cd1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/scim-sync-status.tsx:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/scim-sync-status.tsx:50"}, "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-4e6f685a713a02d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/cache-warming-status.tsx:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/cache-warming-status.tsx:54"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-576022cb71cfb01d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/ab-test-runner.tsx:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/ab-test-runner.tsx:52"}, "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-c7e0765cd7e04f82", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/latency-heatmap.tsx:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/latency-heatmap.tsx:56"}, "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-fa2c9f8c5f748e5f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/dedup-decision-history.tsx:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/dedup-decision-history.tsx:48"}, "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-0e6aefd2bce8b06b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/entity-reconciliation-panel.tsx:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/entity-reconciliation-panel.tsx:53"}, "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-9128614fa21fdb54", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/onboarding-wizard.tsx:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/onboarding-wizard.tsx:111"}, "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-a316d72b6a424bf8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/context-delta-analyzer.tsx:82", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/context-delta-analyzer.tsx:82"}, "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-e6fc738edde179ae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/webhook-delivery-status.tsx:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/webhook-delivery-status.tsx:69"}, "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-02019ddfe6da25b1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/agent-proactive-config.tsx:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/agent-proactive-config.tsx:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-76397982e99e4d3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/mcp-tool-browser.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/mcp-tool-browser.tsx:45"}, "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-aeca162b7650751e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/relationship-suggestions-widget.tsx:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/relationship-suggestions-widget.tsx:69"}, "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-458ab7837e1ca4f2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/sync-error-diagnostic.tsx:115", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/sync-error-diagnostic.tsx:115"}, "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-e04b2eeb3e126291", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/auto-tuning-advisor.tsx:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/auto-tuning-advisor.tsx:67"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a08ff148a1fa19ef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/validation-rule-builder.tsx:160", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/validation-rule-builder.tsx:160"}, "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-e4a388e2c804f710", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-health-scorecard.tsx:185", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-health-scorecard.tsx:185"}, "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-e854053912565fd4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-setup-wizard.tsx:181", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-setup-wizard.tsx:181"}, "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-dbbfbf9aadcbadb8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/recipe-installer.tsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/recipe-installer.tsx:40"}, "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-24d86f65d5be5a97", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/page.tsx:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/page.tsx:14"}, "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-b594260c8715265a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/page.tsx:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/page.tsx:55"}, "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-2a5ae4a27c7c405a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:70"}, "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-18afa453c5648ded", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/members/page.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/members/page.tsx:45"}, "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-799d85c14b334cba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b33a5900027a769", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/usage-limits/page.tsx:85", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/usage-limits/page.tsx:85"}, "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-615f139bfe0959ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/marketplace/[connectorId]/page.tsx:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/marketplace/[connectorId]/page.tsx: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-dfbfc612734e29f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71"}, "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-616e209c81002233", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:41"}, "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-c94c0490971a900f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/cost-breakdown/page.tsx:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/cost-breakdown/page.tsx:78"}, "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-f46f22a9952ed2b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f0706901d9447eae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/data-lineage/page.tsx:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/data-lineage/page.tsx:30"}, "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-0bd2b8e421cacce8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/connectors/setup/[id]/schema-review/page.tsx:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/connectors/setup/[id]/schema-review/page.tsx: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-49eee8f63a9b0a6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/mcp/resources/page.tsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/mcp/resources/page.tsx:40"}, "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-8493fdc05d6ccd43", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/insights/page.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/insights/page.tsx: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-7e4e838d4a733be9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/mcp-tools/page.tsx:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/mcp-tools/page.tsx:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98dd0ca8bee6248f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/search/advanced/page.tsx:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/search/advanced/page.tsx:109"}, "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-d238da281ed1d117", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/recipes/page.tsx:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/recipes/page.tsx:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ef0e443beb4b03d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/__tests__/overview.test.tsx:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/__tests__/overview.test.tsx:41"}, "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-d30e4c452922b091", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-rules/page.tsx:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-rules/page.tsx:62"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59f0cd276325c2eb", "name": "Legacy-named symbol `pruneOld` in apps/dashboard/app/admin/backup-recovery/page.tsx:94", "shortDescription": {"text": "Legacy-named symbol `pruneOld` in apps/dashboard/app/admin/backup-recovery/page.tsx:94"}, "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-ca61809d9712ec1a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/backup-recovery/page.tsx:33", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/backup-recovery/page.tsx:33"}, "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-ed3d3b7edf70e1c5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/connector-health-scorecard/page.tsx:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/connector-health-scorecard/page.tsx:92"}, "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-b7e37d1f03b795b5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-sessions/page.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-sessions/page.tsx:45"}, "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-d0d400a588e028c7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/pii-config/page.tsx:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/pii-config/page.tsx:97"}, "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-0a9b9398d6c1308f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/subscription-manager/page.tsx:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/subscription-manager/page.tsx:42"}, "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-98c698019d6cf009", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/dedup/page.tsx:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/dedup/page.tsx:38"}, "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-2ea94e521f6b4ad9", "name": "Legacy-named symbol `setDeprecated` in apps/dashboard/app/admin/api-versioning/page.tsx:26", "shortDescription": {"text": "Legacy-named symbol `setDeprecated` in apps/dashboard/app/admin/api-versioning/page.tsx:26"}, "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-46d8c5c65cd3955b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/api-versioning/page.tsx:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/api-versioning/page.tsx:31"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53abb3663f432ffd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-analytics/page.tsx:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-analytics/page.tsx:58"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbe14279cb4a1344", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/dlq/page.tsx:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/dlq/page.tsx: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-1850023eade3f0a6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/permissions/page.tsx:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/permissions/page.tsx:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db4c5c83b336b63f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/retention/page.tsx:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/retention/page.tsx:50"}, "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-4fb9e0f9b36ee914", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/entity-lifecycle/page.tsx:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/entity-lifecycle/page.tsx:27"}, "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-f5c24e94ff2c018c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-execution-analytics/page.tsx:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-execution-analytics/page.tsx:56"}, "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-d6ac3feaeec53951", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-quality/page.tsx:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-quality/page.tsx:56"}, "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-11457800f2bf1693", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/sso/page.tsx:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/sso/page.tsx:48"}, "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-3fa34ebf851d786d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-governance/page.tsx:98", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-governance/page.tsx:98"}, "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-fbb0f9b731c5f8d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/webhooks/dlq/page.tsx:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/webhooks/dlq/page.tsx:32"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53ee50b42ea061e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/ha-config/page.tsx:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/ha-config/page.tsx:46"}, "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-5ae44912f75b84fc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/onboarding/page.tsx:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/onboarding/page.tsx: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-faabe86a70263a54", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/team-insights/page.tsx:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/team-insights/page.tsx:69"}, "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-8cf60e7383f6867c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/lib/api.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/lib/api.ts:41"}, "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-b0a9d14650e6885c", "name": "Commented-code block (5 lines) in apps/mcp-server/src/slice-query-client.ts:93", "shortDescription": {"text": "Commented-code block (5 lines) in apps/mcp-server/src/slice-query-client.ts:93"}, "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-c7b79114eb46b4d1", "name": "Commented-code block (5 lines) in scripts/ci-remediator-watch.py:186", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/ci-remediator-watch.py:186"}, "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-1ed6b86cc4428105", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/slice2-demo.ts:264", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/slice2-demo.ts:264"}, "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-ae45ab2d558cc699", "name": "Commented-code block (6 lines) in scripts/daemon.py:46", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/daemon.py:46"}, "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-28826024e3e70390", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/daemon.py:425", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/daemon.py:425"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86582d126a72118e", "name": "Commented-code block (5 lines) in scripts/slice-demo.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/slice-demo.ts:61"}, "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-513aa1ee9f6ebe2a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/slice-demo.ts:142", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/slice-demo.ts:142"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-def2cdfec354cade", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/alerts.ts:376", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/alerts.ts:376"}, "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-639bfa654c9c8257", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/attribute-frequency.ts:158", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/attribute-frequency.ts:158"}, "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-65f477eb0fea64e7", "name": "Commented-code block (5 lines) in packages/semantic-core/src/retrieval.ts:412", "shortDescription": {"text": "Commented-code block (5 lines) in packages/semantic-core/src/retrieval.ts:412"}, "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-4d7ee797ceab6258", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/sdk-generator.ts:256", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/sdk-generator.ts:256"}, "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-310ccba51b718617", "name": "Legacy-named symbol `isDeprecated` in packages/semantic-core/src/mcp-tool-versioning.ts:29", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in packages/semantic-core/src/mcp-tool-versioning.ts:29"}, "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-7bdf21cb212a8e30", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/mcp-tool-versioning.ts:362", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/mcp-tool-versioning.ts:362"}, "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-76c443396b2813f4", "name": "Legacy-named symbol `isDeprecated` in packages/semantic-core/src/__tests__/mcp-tool-versioning.test.ts:95", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in packages/semantic-core/src/__tests__/mcp-tool-versioning.test.ts:95"}, "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-3f55f9a3d6f4c709", "name": "Legacy-named symbol `daysOld` in packages/semantic-core/src/__tests__/query-explainer.test.ts:20", "shortDescription": {"text": "Legacy-named symbol `daysOld` in packages/semantic-core/src/__tests__/query-explainer.test.ts:20"}, "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-1d28ff8c6636deba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/jira/src/jira-connector.ts:225", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/jira/src/jira-connector.ts:225"}, "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-0bbee30426cdae7c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/snowflake/src/snowflake-connector.ts:261", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/snowflake/src/snowflake-connector.ts: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-d8e681026557288c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/netsuite/src/netsuite-connector.ts:229", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/netsuite/src/netsuite-connector.ts:229"}, "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-4905d52ef965c4d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/quickbooks/src/quickbooks-connector.ts:231", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/quickbooks/src/quickbooks-connector.ts:231"}, "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-cef6880df457d84b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/confluence/src/confluence-connector.ts:229", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/confluence/src/confluence-connector.ts:229"}, "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-dc3f14535879dace", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.t", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0b17c8c07a7421d", "name": "8 env vars used in code but missing from .env.example", "shortDescription": {"text": "8 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `API_BASE_URL`, `CLAUDE_MODEL_CHAIN`, `CLAUDE_MODEL_EXHAUSTED_HOLD`, `IRIS_API_KEY`, `IRIS_CACHE_MAX_ENTRIES`, `IRIS_CACHE_SEMANTIC_THRESHOLD`, `IRIS_CACHE_TTL_SECONDS`, `NEXT_PUBLIC_API_URL`. 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-c0f20709f0921609", "name": "Dangling fetch: GET /connectors/hubspot/reliability (apps/api/src/__tests__/reliability-scoring.test.ts:44)", "shortDescription": {"text": "Dangling fetch: GET /connectors/hubspot/reliability (apps/api/src/__tests__/reliability-scoring.test.ts:44)"}, "fullDescription": {"text": "`apps/api/src/__tests__/reliability-scoring.test.ts:44` calls `GET /connectors/hubspot/reliability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/reliability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3bf6361ee5b0b142", "name": "Dangling fetch: GET /connectors/hubspot/reliability (apps/api/src/__tests__/reliability-scoring.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /connectors/hubspot/reliability (apps/api/src/__tests__/reliability-scoring.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/reliability-scoring.test.ts:56` calls `GET /connectors/hubspot/reliability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/reliability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6da94fbc2ce67565", "name": "Dangling fetch: GET /connectors/hubspot/alerts (apps/api/src/__tests__/reliability-scoring.test.ts:70)", "shortDescription": {"text": "Dangling fetch: GET /connectors/hubspot/alerts (apps/api/src/__tests__/reliability-scoring.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/reliability-scoring.test.ts:70` calls `GET /connectors/hubspot/alerts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/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-f03fcce5dda45ee2", "name": "Dangling fetch: POST /connectors/hubspot/suppress-alert (apps/api/src/__tests__/reliability-scoring.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/suppress-alert (apps/api/src/__tests__/reliability-scoring.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/reliability-scoring.test.ts:83` calls `POST /connectors/hubspot/suppress-alert` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/suppress-alert`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fca223c09cfd7389", "name": "Dangling fetch: POST /connectors/hubspot/suppress-alert (apps/api/src/__tests__/reliability-scoring.test.ts:97)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/suppress-alert (apps/api/src/__tests__/reliability-scoring.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/reliability-scoring.test.ts:97` calls `POST /connectors/hubspot/suppress-alert` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/suppress-alert`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7513adee19c31ee6", "name": "Dangling fetch: POST /connectors/hubspot/assess (apps/api/src/__tests__/reliability-scoring.test.ts:111)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/assess (apps/api/src/__tests__/reliability-scoring.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/reliability-scoring.test.ts:111` calls `POST /connectors/hubspot/assess` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/assess`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f8df3b2b78db9fb", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:54)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:54` calls `GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync-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-8d0c13693c727c39", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:62` calls `GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync-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-796f2d285aeecd66", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics?days=7 (apps/api/src/__tests__/sync-metrics.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics?days=7 (apps/api/src/__tests__/sync-metrics.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:72` calls `GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync-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-3f7f4ca2ea0ccc3c", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:88)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:88` calls `POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync-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-1028ac6c5d51cdc5", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:103` calls `POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync-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-fabe1f116afb4993", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:113)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:113` calls `POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync-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-309008d6275b6a3e", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/optimize (apps/api/src/__tests__/sync-metrics.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/optimize (apps/api/src/__tests__/sync-metrics.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:146` calls `POST /api/v1/connectors/${CONNECTOR_ID}/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57cf7f55b3528e52", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/optimize (apps/api/src/__tests__/sync-metrics.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/optimize (apps/api/src/__tests__/sync-metrics.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-metrics.test.ts:154` calls `POST /api/v1/connectors/${CONNECTOR_ID}/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f801a1436b6f0333", "name": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:49)", "shortDescription": {"text": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:49` calls `POST /mcp/subscribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bbc96caf058ef74c", "name": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:66)", "shortDescription": {"text": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:66` calls `POST /mcp/subscribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ff2f604e2756494", "name": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:87)", "shortDescription": {"text": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:87)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:87` calls `POST /mcp/subscribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce4760a177e88ca2", "name": "Dangling fetch: DELETE /mcp/subscriptions/sub-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:106)", "shortDescription": {"text": "Dangling fetch: DELETE /mcp/subscriptions/sub-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:106` calls `DELETE /mcp/subscriptions/sub-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscriptions/sub-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86d93558df7c9272", "name": "Dangling fetch: DELETE /mcp/subscriptions/sub-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:117)", "shortDescription": {"text": "Dangling fetch: DELETE /mcp/subscriptions/sub-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:117` calls `DELETE /mcp/subscriptions/sub-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscriptions/sub-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-813cc1111e344b23", "name": "Dangling fetch: GET /mcp/subscriptions (apps/api/src/__tests__/mcp-subscriptions.test.ts:129)", "shortDescription": {"text": "Dangling fetch: GET /mcp/subscriptions (apps/api/src/__tests__/mcp-subscriptions.test.ts:129)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:129` calls `GET /mcp/subscriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59db8e97a3b2454a", "name": "Dangling fetch: GET /mcp/subscriptions?workspaceId=ws-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:139)", "shortDescription": {"text": "Dangling fetch: GET /mcp/subscriptions?workspaceId=ws-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:139)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:139` calls `GET /mcp/subscriptions?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-139716538492a774", "name": "Dangling fetch: GET /mcp/subscriptions/sub-1/events (apps/api/src/__tests__/mcp-subscriptions.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /mcp/subscriptions/sub-1/events (apps/api/src/__tests__/mcp-subscriptions.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-subscriptions.test.ts:153` calls `GET /mcp/subscriptions/sub-1/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/subscriptions/sub-1/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-465cbdf5d97e39d2", "name": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:60` calls `GET /audit-logs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b5faaba869cf8ac", "name": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:70)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:70` calls `GET /audit-logs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-985e1f2903efe5bc", "name": "Dangling fetch: GET /audit-logs?action=invalid_action (apps/api/src/__tests__/audit-logs.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs?action=invalid_action (apps/api/src/__tests__/audit-logs.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:77` calls `GET /audit-logs?action=invalid_action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b456c0e98c8a129e", "name": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:85)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:85` calls `GET /audit-logs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c3817a77898143ed", "name": "Dangling fetch: GET /audit-logs?cursor=abc&limit=10 (apps/api/src/__tests__/audit-logs.test.ts:93)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs?cursor=abc&limit=10 (apps/api/src/__tests__/audit-logs.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:93` calls `GET /audit-logs?cursor=abc&limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-542be2fe1c488221", "name": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:105)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:105` calls `GET /audit-logs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd75af25900ad197", "name": "Dangling fetch: GET /audit-logs/export?format=json (apps/api/src/__tests__/audit-logs.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs/export?format=json (apps/api/src/__tests__/audit-logs.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:117` calls `GET /audit-logs/export?format=json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-42c79550790e9f80", "name": "Dangling fetch: GET /audit-logs/export?format=csv (apps/api/src/__tests__/audit-logs.test.ts:127)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs/export?format=csv (apps/api/src/__tests__/audit-logs.test.ts:127)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:127` calls `GET /audit-logs/export?format=csv` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4b7895c7b1f0966", "name": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:137` calls `GET /audit-logs/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b090eedf2bce883", "name": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:145)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:145` calls `GET /audit-logs/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d34e8dd39558db3", "name": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/audit-logs.test.ts:153` calls `GET /audit-logs/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/audit-logs/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef32b8bba8ad17e3", "name": "Dangling fetch: GET /api/v1/teams/team-1/recommended-contexts (apps/api/src/__tests__/team-recommendations.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/team-1/recommended-contexts (apps/api/src/__tests__/team-recommendations.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:42` calls `GET /api/v1/teams/team-1/recommended-contexts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/recommended-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52edd48d99558b73", "name": "Dangling fetch: GET /api/v1/teams/team-1/recommended-contexts?topK=5 (apps/api/src/__tests__/team-recommendations.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/team-1/recommended-contexts?topK=5 (apps/api/src/__tests__/team-recommendations.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:49` calls `GET /api/v1/teams/team-1/recommended-contexts?topK=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/recommended-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e06771e092aad7d", "name": "Dangling fetch: GET /api/v1/teams/team-1/usage (apps/api/src/__tests__/team-recommendations.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/team-1/usage (apps/api/src/__tests__/team-recommendations.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:56` calls `GET /api/v1/teams/team-1/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be453ca8ff64e18c", "name": "Dangling fetch: GET /api/v1/teams/team-1/usage?window=7d (apps/api/src/__tests__/team-recommendations.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/team-1/usage?window=7d (apps/api/src/__tests__/team-recommendations.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:63` calls `GET /api/v1/teams/team-1/usage?window=7d` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b295e76f7ef2533f", "name": "Dangling fetch: GET /api/v1/teams/team-1/expansion-suggestions (apps/api/src/__tests__/team-recommendations.test.ts:70)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/team-1/expansion-suggestions (apps/api/src/__tests__/team-recommendations.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:70` calls `GET /api/v1/teams/team-1/expansion-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/expansion-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ff332ef5f06cdac", "name": "Dangling fetch: PUT /api/v1/teams/team-1/context-preferences (apps/api/src/__tests__/team-recommendations.test.ts:79)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/teams/team-1/context-preferences (apps/api/src/__tests__/team-recommendations.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:79` calls `PUT /api/v1/teams/team-1/context-preferences` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/context-preferences`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5fa0cc321448a78a", "name": "Dangling fetch: PUT /api/v1/teams/team-1/context-preferences (apps/api/src/__tests__/team-recommendations.test.ts:90)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/teams/team-1/context-preferences (apps/api/src/__tests__/team-recommendations.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:90` calls `PUT /api/v1/teams/team-1/context-preferences` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/context-preferences`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-297a90bc3b139fca", "name": "Dangling fetch: POST /api/v1/teams/team-1/context-access (apps/api/src/__tests__/team-recommendations.test.ts:101)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/teams/team-1/context-access (apps/api/src/__tests__/team-recommendations.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:101` calls `POST /api/v1/teams/team-1/context-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/context-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f2ddd89f5fbe2c9", "name": "Dangling fetch: POST /api/v1/teams/team-1/context-access (apps/api/src/__tests__/team-recommendations.test.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/teams/team-1/context-access (apps/api/src/__tests__/team-recommendations.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:110` calls `POST /api/v1/teams/team-1/context-access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/teams/team-1/context-access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48dc28108a32d805", "name": "Dangling fetch: GET /api/v1/roles/admin/context-predictions (apps/api/src/__tests__/team-recommendations.test.ts:121)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/roles/admin/context-predictions (apps/api/src/__tests__/team-recommendations.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-recommendations.test.ts:121` calls `GET /api/v1/roles/admin/context-predictions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/roles/admin/context-predictions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93bd261ca2922f2c", "name": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality.test.ts:47` calls `GET /data-quality/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0fec8f221e6c190", "name": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality.test.ts:55` calls `GET /data-quality/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b1ab22096464e5e", "name": "Dangling fetch: GET /data-quality/report?entityType=contact (apps/api/src/__tests__/data-quality.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report?entityType=contact (apps/api/src/__tests__/data-quality.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality.test.ts:61` calls `GET /data-quality/report?entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-009a425c225319e3", "name": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:67)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality.test.ts:67` calls `GET /data-quality/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-24de5dc0aa6ffbfe", "name": "Dangling fetch: GET /data-quality/entities/e1 (apps/api/src/__tests__/data-quality.test.ts:74)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/entities/e1 (apps/api/src/__tests__/data-quality.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality.test.ts:74` calls `GET /data-quality/entities/e1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/entities/e1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c20102a3abf7e3e", "name": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:81)", "shortDescription": {"text": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:81` calls `GET /workspace/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74ade0c2727a00d4", "name": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:89)", "shortDescription": {"text": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:89` calls `GET /workspace/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-96d62b5f4c2cbda6", "name": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:95)", "shortDescription": {"text": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:95` calls `GET /workspace/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7af5bcd1a698fa5", "name": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:102` calls `POST /workspace/members/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/invite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b74852be9d984375", "name": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:112)", "shortDescription": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:112` calls `POST /workspace/members/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/invite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd3a607b7fcb9a55", "name": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:121)", "shortDescription": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:121` calls `POST /workspace/members/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/invite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1c9e87719d39703a", "name": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:131)", "shortDescription": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:131)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:131` calls `POST /workspace/members/invite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/invite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7f0fe0a58cdfd3c", "name": "Dangling fetch: PUT /workspace/members/${USER_A}/role (apps/api/src/__tests__/workspace-members.test.ts:142)", "shortDescription": {"text": "Dangling fetch: PUT /workspace/members/${USER_A}/role (apps/api/src/__tests__/workspace-members.test.ts:142)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:142` calls `PUT /workspace/members/${USER_A}/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/<p>/role`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff025dbea64bb056", "name": "Dangling fetch: PUT /workspace/members/unknown/role (apps/api/src/__tests__/workspace-members.test.ts:154)", "shortDescription": {"text": "Dangling fetch: PUT /workspace/members/unknown/role (apps/api/src/__tests__/workspace-members.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:154` calls `PUT /workspace/members/unknown/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/unknown/role`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-857d47514dcadf75", "name": "Dangling fetch: PUT /workspace/members/${USER_A}/role (apps/api/src/__tests__/workspace-members.test.ts:163)", "shortDescription": {"text": "Dangling fetch: PUT /workspace/members/${USER_A}/role (apps/api/src/__tests__/workspace-members.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:163` calls `PUT /workspace/members/${USER_A}/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/<p>/role`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ad6f3b8cb5788637", "name": "Dangling fetch: DELETE /workspace/members/${USER_A} (apps/api/src/__tests__/workspace-members.test.ts:174)", "shortDescription": {"text": "Dangling fetch: DELETE /workspace/members/${USER_A} (apps/api/src/__tests__/workspace-members.test.ts:174)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:174` calls `DELETE /workspace/members/${USER_A}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/<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-0f0e0f5dc72a5d76", "name": "Dangling fetch: DELETE /workspace/members/${USER_A} (apps/api/src/__tests__/workspace-members.test.ts:184)", "shortDescription": {"text": "Dangling fetch: DELETE /workspace/members/${USER_A} (apps/api/src/__tests__/workspace-members.test.ts:184)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:184` calls `DELETE /workspace/members/${USER_A}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/members/<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-4a4c63410f2c3f7f", "name": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:191)", "shortDescription": {"text": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:191)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:191` calls `POST /workspace/shares` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/shares`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65dbf7122d63367e", "name": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:207)", "shortDescription": {"text": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:207)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:207` calls `POST /workspace/shares` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/shares`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2070666a3e12f8d", "name": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:222)", "shortDescription": {"text": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:222)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:222` calls `POST /workspace/shares` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/shares`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c834ee91141d659c", "name": "Dangling fetch: DELETE /workspace/shares?resourceType=connector&resourceId=conn-1&targetUserId=${USER_B} (apps/api/src/_", "shortDescription": {"text": "Dangling fetch: DELETE /workspace/shares?resourceType=connector&resourceId=conn-1&targetUserId=${USER_B} (apps/api/src/__tests__/workspace-members.test.ts:233)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:233` calls `DELETE /workspace/shares?resourceType=connector&resourceId=conn-1&targetUserId=${USER_B}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/shares`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2616953a27423796", "name": "Dangling fetch: DELETE /workspace/shares?resourceType=connector (apps/api/src/__tests__/workspace-members.test.ts:243)", "shortDescription": {"text": "Dangling fetch: DELETE /workspace/shares?resourceType=connector (apps/api/src/__tests__/workspace-members.test.ts:243)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:243` calls `DELETE /workspace/shares?resourceType=connector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/shares`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ecd5f652a283e0f", "name": "Dangling fetch: GET /workspace/permissions/check?action=read (apps/api/src/__tests__/workspace-members.test.ts:250)", "shortDescription": {"text": "Dangling fetch: GET /workspace/permissions/check?action=read (apps/api/src/__tests__/workspace-members.test.ts:250)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:250` calls `GET /workspace/permissions/check?action=read` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/permissions/check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3884439cbbb2ed4b", "name": "Dangling fetch: GET /workspace/permissions/check (apps/api/src/__tests__/workspace-members.test.ts:257)", "shortDescription": {"text": "Dangling fetch: GET /workspace/permissions/check (apps/api/src/__tests__/workspace-members.test.ts:257)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:257` calls `GET /workspace/permissions/check` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/permissions/check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87c14c5e106bfbfa", "name": "Dangling fetch: GET /workspace/permissions/check?action=read (apps/api/src/__tests__/workspace-members.test.ts:262)", "shortDescription": {"text": "Dangling fetch: GET /workspace/permissions/check?action=read (apps/api/src/__tests__/workspace-members.test.ts:262)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:262` calls `GET /workspace/permissions/check?action=read` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/permissions/check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abd96e2a51ede4eb", "name": "Dangling fetch: GET /workspace/permissions/check?action=delete_workspace (apps/api/src/__tests__/workspace-members.test.", "shortDescription": {"text": "Dangling fetch: GET /workspace/permissions/check?action=delete_workspace (apps/api/src/__tests__/workspace-members.test.ts:268)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-members.test.ts:268` calls `GET /workspace/permissions/check?action=delete_workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspace/permissions/check`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-275baf467362221d", "name": "Dangling fetch: GET /permissions/fields?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:27)", "shortDescription": {"text": "Dangling fetch: GET /permissions/fields?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:27)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:27` calls `GET /permissions/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3696cb1c85534e7f", "name": "Dangling fetch: GET /permissions/fields?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /permissions/fields?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:41)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:41` calls `GET /permissions/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93e56b8272d1ba83", "name": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:53)", "shortDescription": {"text": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:53` calls `POST /permissions/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5222ef5bcb12a87f", "name": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:66)", "shortDescription": {"text": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:66` calls `POST /permissions/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18b5a92ffc3bc71e", "name": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:76)", "shortDescription": {"text": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:76` calls `POST /permissions/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a6000bdb4fbe0d6", "name": "Dangling fetch: DELETE /permissions/fields/fp-abc?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:", "shortDescription": {"text": "Dangling fetch: DELETE /permissions/fields/fp-abc?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:90` calls `DELETE /permissions/fields/fp-abc?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/fields/fp-abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-19fc0d3179df5a23", "name": "Dangling fetch: GET /permissions/connectors?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:104)", "shortDescription": {"text": "Dangling fetch: GET /permissions/connectors?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:104` calls `GET /permissions/connectors?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa17b2c0085bf972", "name": "Dangling fetch: GET /permissions/connectors?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:116)", "shortDescription": {"text": "Dangling fetch: GET /permissions/connectors?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:116` calls `GET /permissions/connectors?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-951af36501ce0fbd", "name": "Dangling fetch: POST /permissions/connectors (apps/api/src/__tests__/granular-permissions.test.ts:128)", "shortDescription": {"text": "Dangling fetch: POST /permissions/connectors (apps/api/src/__tests__/granular-permissions.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:128` calls `POST /permissions/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18d442d9b0a879cb", "name": "Dangling fetch: POST /permissions/connectors (apps/api/src/__tests__/granular-permissions.test.ts:140)", "shortDescription": {"text": "Dangling fetch: POST /permissions/connectors (apps/api/src/__tests__/granular-permissions.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/granular-permissions.test.ts:140` calls `POST /permissions/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/permissions/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edbef1e56d750693", "name": "Dangling fetch: GET /api/v1/insights (apps/api/src/__tests__/insights.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/insights (apps/api/src/__tests__/insights.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:48` calls `GET /api/v1/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b05c2f13d7bf9d42", "name": "Dangling fetch: GET /api/v1/insights?type=missing_data (apps/api/src/__tests__/insights.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/insights?type=missing_data (apps/api/src/__tests__/insights.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:55` calls `GET /api/v1/insights?type=missing_data` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4160c3b4ad216e05", "name": "Dangling fetch: GET /api/v1/insights?severity=warning (apps/api/src/__tests__/insights.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/insights?severity=warning (apps/api/src/__tests__/insights.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:60` calls `GET /api/v1/insights?severity=warning` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-480d0522dec8a328", "name": "Dangling fetch: POST /api/v1/insights/discover (apps/api/src/__tests__/insights.test.ts:67)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/discover (apps/api/src/__tests__/insights.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:67` calls `POST /api/v1/insights/discover` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/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-e626c29e2564794c", "name": "Dangling fetch: POST /api/v1/insights/discover (apps/api/src/__tests__/insights.test.ts:78)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/discover (apps/api/src/__tests__/insights.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:78` calls `POST /api/v1/insights/discover` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/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-84b91d2783345a86", "name": "Dangling fetch: GET /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:89)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:89` calls `GET /api/v1/insights/scheduled` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/scheduled`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0c69174d11b37b6", "name": "Dangling fetch: POST /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:98` calls `POST /api/v1/insights/scheduled` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/scheduled`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e00fb783db83218", "name": "Dangling fetch: POST /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:109)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:109` calls `POST /api/v1/insights/scheduled` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/scheduled`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85367ead3ee18bf9", "name": "Dangling fetch: POST /api/v1/insights/ins-1/feedback (apps/api/src/__tests__/insights.test.ts:120)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/ins-1/feedback (apps/api/src/__tests__/insights.test.ts:120)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:120` calls `POST /api/v1/insights/ins-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/ins-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac93b40ddd704f93", "name": "Dangling fetch: POST /api/v1/insights/ins-1/feedback (apps/api/src/__tests__/insights.test.ts:129)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/ins-1/feedback (apps/api/src/__tests__/insights.test.ts:129)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:129` calls `POST /api/v1/insights/ins-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/ins-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-293a0b25089b4de1", "name": "Dangling fetch: GET /api/v1/insights/report/contact (apps/api/src/__tests__/insights.test.ts:140)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/insights/report/contact (apps/api/src/__tests__/insights.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/insights.test.ts:140` calls `GET /api/v1/insights/report/contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/insights/report/contact`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ab20ea886bc2e38", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:40)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:40)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:40` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-7f22cb2e61635913", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:48` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-5135029da8eb5f67", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:54)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:54` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-9c74272218570bbf", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:60` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-e42b6ef46c1c3c62", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:66` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-5290d0dc1481899a", "name": "Dangling fetch: GET /admin/vector-store/health?table=my_vectors (apps/api/src/__tests__/vector-store-admin.test.ts:72)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health?table=my_vectors (apps/api/src/__tests__/vector-store-admin.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:72` calls `GET /admin/vector-store/health?table=my_vectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-81c68ed4d6072778", "name": "Dangling fetch: GET /admin/vector-store/health?latencySla=10 (apps/api/src/__tests__/vector-store-admin.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health?latencySla=10 (apps/api/src/__tests__/vector-store-admin.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:77` calls `GET /admin/vector-store/health?latencySla=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-fcf52042608bc6e5", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:84` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-e50d2d79b3f8ba95", "name": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:89)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:89` calls `GET /admin/vector-store/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/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-cb0df4eb7c6bfa97", "name": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:99` calls `POST /admin/vector-store/reindex` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/reindex`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-efbab47829f67b33", "name": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:110` calls `POST /admin/vector-store/reindex` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/reindex`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d73f87a10e41d99", "name": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:121)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:121` calls `POST /admin/vector-store/reindex` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/reindex`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9f150b1355e2498e", "name": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:130)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-store-admin.test.ts:130` calls `POST /admin/vector-store/reindex` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-store/reindex`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-afe102d33ab9b0fe", "name": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:48` calls `GET /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-df26aebbd65264fc", "name": "Dangling fetch: GET /pii-config (apps/api/src/__tests__/pii-config.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /pii-config (apps/api/src/__tests__/pii-config.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:56` calls `GET /pii-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-515f4724da17c4b1", "name": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:62` calls `GET /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-fe44aad96b81cc3d", "name": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:68` calls `GET /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-49140b0df52a4422", "name": "Dangling fetch: GET /pii-config?workspaceId=my-workspace (apps/api/src/__tests__/pii-config.test.ts:76)", "shortDescription": {"text": "Dangling fetch: GET /pii-config?workspaceId=my-workspace (apps/api/src/__tests__/pii-config.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:76` calls `GET /pii-config?workspaceId=my-workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-b12b5858bf219ff9", "name": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:84)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:84` calls `PUT /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-8d80d9456b749b94", "name": "Dangling fetch: PUT /pii-config (apps/api/src/__tests__/pii-config.test.ts:95)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config (apps/api/src/__tests__/pii-config.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:95` calls `PUT /pii-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-1836161b16257dbb", "name": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:104)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:104` calls `PUT /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-82a5c65895564312", "name": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:113)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:113` calls `PUT /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-7186d9cf7a7f3027", "name": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:123)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:123` calls `PUT /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-ed70171ab534a321", "name": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:133)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:133` calls `PUT /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-b0ad49ae29f8032b", "name": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:147)", "shortDescription": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:147` calls `PUT /pii-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-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-ac5627214133b083", "name": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:159)", "shortDescription": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:159)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:159` calls `POST /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1dfa1f7529e4f150", "name": "Dangling fetch: POST /pii-config/fields (apps/api/src/__tests__/pii-config.test.ts:168)", "shortDescription": {"text": "Dangling fetch: POST /pii-config/fields (apps/api/src/__tests__/pii-config.test.ts:168)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:168` calls `POST /pii-config/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1071c2ed299f664", "name": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:177)", "shortDescription": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:177)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:177` calls `POST /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea4591702d475406", "name": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:186)", "shortDescription": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:186)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:186` calls `POST /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35eb71ffa4c7451d", "name": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:196)", "shortDescription": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:196)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:196` calls `POST /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae759ba0c5c5df7c", "name": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:206)", "shortDescription": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:206)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:206` calls `POST /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4b7cd3b43458e00", "name": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:223)", "shortDescription": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:223)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:223` calls `DELETE /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-504fb20601ab5abc", "name": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:235)", "shortDescription": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:235)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:235` calls `DELETE /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44eed94294827c71", "name": "Dangling fetch: DELETE /pii-config/fields (apps/api/src/__tests__/pii-config.test.ts:245)", "shortDescription": {"text": "Dangling fetch: DELETE /pii-config/fields (apps/api/src/__tests__/pii-config.test.ts:245)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:245` calls `DELETE /pii-config/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f32af0aed7f6fee", "name": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:254)", "shortDescription": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:254)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:254` calls `DELETE /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84c101520f0e60d3", "name": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:264)", "shortDescription": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:264)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-config.test.ts:264` calls `DELETE /pii-config/fields?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pii-config/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0dfbbb8058bc432", "name": "Dangling fetch: GET /api/v1/workspace/budget-status (apps/api/src/__tests__/budget-management.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/budget-status (apps/api/src/__tests__/budget-management.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:59` calls `GET /api/v1/workspace/budget-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-e4c5b9cd9e63035d", "name": "Dangling fetch: GET /api/v1/workspace/budget-status (apps/api/src/__tests__/budget-management.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/budget-status (apps/api/src/__tests__/budget-management.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:82` calls `GET /api/v1/workspace/budget-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-088fee9f80cb2972", "name": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:98)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:98` calls `PUT /api/v1/workspace/budget-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-69ea83780edd2d10", "name": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:110)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:110` calls `PUT /api/v1/workspace/budget-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-f4285f5d695341e6", "name": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:121)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:121` calls `PUT /api/v1/workspace/budget-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-400eb4e73e4bd478", "name": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:130)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:130` calls `PUT /api/v1/workspace/budget-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-1554ad5aa0d2c8fe", "name": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:139)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:139)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:139` calls `PUT /api/v1/workspace/budget-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-4af3f9e50a06f7ea", "name": "Dangling fetch: GET /api/v1/workspace/budget-history?days=7 (apps/api/src/__tests__/budget-management.test.ts:163)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/budget-history?days=7 (apps/api/src/__tests__/budget-management.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:163` calls `GET /api/v1/workspace/budget-history?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-52efa80df2f04f95", "name": "Dangling fetch: GET /api/v1/workspace/budget-history?days=180 (apps/api/src/__tests__/budget-management.test.ts:174)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/budget-history?days=180 (apps/api/src/__tests__/budget-management.test.ts:174)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:174` calls `GET /api/v1/workspace/budget-history?days=180` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-29671f95b361c614", "name": "Dangling fetch: GET /api/v1/workspace/budget-history (apps/api/src/__tests__/budget-management.test.ts:182)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/budget-history (apps/api/src/__tests__/budget-management.test.ts:182)"}, "fullDescription": {"text": "`apps/api/src/__tests__/budget-management.test.ts:182` calls `GET /api/v1/workspace/budget-history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/budget-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-b5457a43271bc9a1", "name": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:45)", "shortDescription": {"text": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:45` calls `POST /agents/agent-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/agent-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a252d3c3470b316", "name": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:57)", "shortDescription": {"text": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:57` calls `POST /agents/agent-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/agent-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd74b32aefaa11a8", "name": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:66)", "shortDescription": {"text": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:66` calls `POST /agents/agent-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/agent-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-605e00fcab7a1e61", "name": "Dangling fetch: GET /agents/agent-1/insights (apps/api/src/__tests__/agent-feedback.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /agents/agent-1/insights (apps/api/src/__tests__/agent-feedback.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:77` calls `GET /agents/agent-1/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/agent-1/insights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71965f461cc9a5fa", "name": "Dangling fetch: GET /agents/entities/contact/feedback-score (apps/api/src/__tests__/agent-feedback.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /agents/entities/contact/feedback-score (apps/api/src/__tests__/agent-feedback.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:90` calls `GET /agents/entities/contact/feedback-score` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/entities/contact/feedback-score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27a75cb1c894c94f", "name": "Dangling fetch: GET /agents/entities/unknown-type/feedback-score (apps/api/src/__tests__/agent-feedback.test.ts:99)", "shortDescription": {"text": "Dangling fetch: GET /agents/entities/unknown-type/feedback-score (apps/api/src/__tests__/agent-feedback.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:99` calls `GET /agents/entities/unknown-type/feedback-score` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/entities/unknown-type/feedback-score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d119cf52e434466", "name": "Dangling fetch: GET /agents/relevance-adjustments (apps/api/src/__tests__/agent-feedback.test.ts:110)", "shortDescription": {"text": "Dangling fetch: GET /agents/relevance-adjustments (apps/api/src/__tests__/agent-feedback.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/agent-feedback.test.ts:110` calls `GET /agents/relevance-adjustments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/agents/relevance-adjustments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03b94e67539ee369", "name": "Dangling fetch: GET /api/v1/benchmark-snapshot (apps/api/src/__tests__/benchmarking.test.ts:32)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmark-snapshot (apps/api/src/__tests__/benchmarking.test.ts:32)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:32` calls `GET /api/v1/benchmark-snapshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-122e3348398ca731", "name": "Dangling fetch: GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:41)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:41` calls `GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d3507c99e4513e7", "name": "Dangling fetch: GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:51` calls `GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e66e2b0fde6ac071", "name": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison (apps/api/src/__tests__/benchmarking.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison (apps/api/src/__tests__/benchmarking.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:61` calls `GET /api/v1/benchmarks/peer-comparison` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-231786549b4f3be2", "name": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=software&companySize=smb (apps/", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=software&companySize=smb (apps/api/src/__tests__/benchmarking.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:70` calls `GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=software&companySize=smb` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d2e8e5d0c9c6016", "name": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.tes", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:80` calls `GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2efdaa08d411197b", "name": "Dangling fetch: GET /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:90` calls `GET /api/v1/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70be76d4a3fdcd6f", "name": "Dangling fetch: GET /api/v1/benchmarks/settings?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:99", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/settings?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:99` calls `GET /api/v1/benchmarks/settings?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c1bb20ce3ed1bf9", "name": "Dangling fetch: PUT /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:111)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:111` calls `PUT /api/v1/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec3609094d3881c0", "name": "Dangling fetch: PUT /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:124)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:124` calls `PUT /api/v1/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0849cd560432ecc9", "name": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:140)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:140` calls `POST /api/v1/benchmarks/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20d3abe5f64d5720", "name": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:152)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:152)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:152` calls `POST /api/v1/benchmarks/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2df6380a60f6793", "name": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:166)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:166` calls `POST /api/v1/benchmarks/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/benchmarks/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-feb5416d01a13839", "name": "Dangling fetch: GET /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:188)", "shortDescription": {"text": "Dangling fetch: GET /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:188)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:188` calls `GET /benchmarks/opt-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/opt-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8bbbe625c110922", "name": "Dangling fetch: GET /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:196)", "shortDescription": {"text": "Dangling fetch: GET /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:196)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:196` calls `GET /benchmarks/opt-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/opt-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-209b2c1579fb3b3d", "name": "Dangling fetch: POST /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:208)", "shortDescription": {"text": "Dangling fetch: POST /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:208)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:208` calls `POST /benchmarks/opt-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/opt-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b04efc5eb52aa34", "name": "Dangling fetch: POST /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:221)", "shortDescription": {"text": "Dangling fetch: POST /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:221)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:221` calls `POST /benchmarks/opt-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/opt-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa731e7ad873bf63", "name": "Dangling fetch: POST /benchmarks/opt-out (apps/api/src/__tests__/benchmarking.test.ts:239)", "shortDescription": {"text": "Dangling fetch: POST /benchmarks/opt-out (apps/api/src/__tests__/benchmarking.test.ts:239)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:239` calls `POST /benchmarks/opt-out` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/opt-out`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67b8c82f2977df95", "name": "Dangling fetch: GET /benchmarks/peers (apps/api/src/__tests__/benchmarking.test.ts:256)", "shortDescription": {"text": "Dangling fetch: GET /benchmarks/peers (apps/api/src/__tests__/benchmarking.test.ts:256)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:256` calls `GET /benchmarks/peers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/peers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-716610c71d9e7141", "name": "Dangling fetch: GET /benchmarks/peers (apps/api/src/__tests__/benchmarking.test.ts:270)", "shortDescription": {"text": "Dangling fetch: GET /benchmarks/peers (apps/api/src/__tests__/benchmarking.test.ts:270)"}, "fullDescription": {"text": "`apps/api/src/__tests__/benchmarking.test.ts:270` calls `GET /benchmarks/peers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/benchmarks/peers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1d048bc7c9e0160", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema (apps/api/src/__tests__/schema-discovery.test.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema (apps/api/src/__tests__/schema-discovery.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:52` calls `POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/discover-schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1294b74f2354b53", "name": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema (apps/api/src/__tests__/schema-discovery.test.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema (apps/api/src/__tests__/schema-discovery.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:58` calls `POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/discover-schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18856661f39e1267", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions (apps/api/src/__tests__/schema-discovery.test.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions (apps/api/src/__tests__/schema-discovery.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:76` calls `GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schema-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68f837c8f6c5b0ca", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions (apps/api/src/__tests__/schema-discovery.test.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions (apps/api/src/__tests__/schema-discovery.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:84` calls `GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schema-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20c26c2e5bd56801", "name": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:102` calls `POST /api/v1/connectors/suggestions/s-1/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/suggestions/s-1/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3d83eeb17dc2573", "name": "Dangling fetch: POST /api/v1/connectors/suggestions/r-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:113)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/r-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:113` calls `POST /api/v1/connectors/suggestions/r-1/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/suggestions/r-1/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-117690cddf443e55", "name": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:123` calls `POST /api/v1/connectors/suggestions/s-1/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/suggestions/s-1/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f06e35f822f6ecd", "name": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:133` calls `POST /api/v1/connectors/suggestions/s-1/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/suggestions/s-1/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a21b5e4d27333385", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-report (apps/api/src/__tests__/schema-discovery.test.ts:16", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-report (apps/api/src/__tests__/schema-discovery.test.ts:162)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:162` calls `GET /api/v1/connectors/${CONNECTOR_ID}/schema-report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schema-report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15c4df049ad72547", "name": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-report (apps/api/src/__tests__/schema-discovery.test.ts:17", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-report (apps/api/src/__tests__/schema-discovery.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/__tests__/schema-discovery.test.ts:170` calls `GET /api/v1/connectors/${CONNECTOR_ID}/schema-report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schema-report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30008393484b2281", "name": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:55)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:55` calls `POST /api/v1/compliance/audit-export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/audit-export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ace51257b075b0e2", "name": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:68)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:68` calls `POST /api/v1/compliance/audit-export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/audit-export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3bb8351a1670a81f", "name": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:79)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:79` calls `POST /api/v1/compliance/audit-export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/audit-export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40963a573c836567", "name": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:99` calls `POST /api/v1/compliance/audit-export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/audit-export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8efd07854860a63", "name": "Dangling fetch: GET /api/v1/compliance/audit-exports (apps/api/src/__tests__/compliance-audit.test.ts:113)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/audit-exports (apps/api/src/__tests__/compliance-audit.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:113` calls `GET /api/v1/compliance/audit-exports` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/audit-exports`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f4f782c301aec53", "name": "Dangling fetch: GET /api/v1/compliance/audit-exports?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:1", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/audit-exports?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:122` calls `GET /api/v1/compliance/audit-exports?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/audit-exports`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-826ea1ffb9319c67", "name": "Dangling fetch: GET /api/v1/compliance/anomalies (apps/api/src/__tests__/compliance-audit.test.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/anomalies (apps/api/src/__tests__/compliance-audit.test.ts:132)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:132` calls `GET /api/v1/compliance/anomalies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c421200a63443d57", "name": "Dangling fetch: GET /api/v1/compliance/anomalies?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:149)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/anomalies?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:149)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:149` calls `GET /api/v1/compliance/anomalies?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84b99bcc5dc7fb79", "name": "Dangling fetch: GET /api/v1/compliance/anomalies?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:159)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/anomalies?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:159)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:159` calls `GET /api/v1/compliance/anomalies?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4f91417d1c47588", "name": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-abc123 (apps/api/src/__tests__/compliance-audit.test.ts:167)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-abc123 (apps/api/src/__tests__/compliance-audit.test.ts:167)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:167` calls `GET /api/v1/compliance/verify-export/exp-abc123` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/verify-export/exp-abc123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2103443f152a5efc", "name": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-xyz?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-xyz?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:174)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:174` calls `GET /api/v1/compliance/verify-export/exp-xyz?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/verify-export/exp-xyz`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f93f4ecd4f7672d", "name": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-abc123?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audi", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-abc123?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance-audit.test.ts:181` calls `GET /api/v1/compliance/verify-export/exp-abc123?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/compliance/verify-export/exp-abc123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c221de3aa6bb24f", "name": "Dangling fetch: GET /api/v1/graph/query (apps/api/src/__tests__/graph.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query (apps/api/src/__tests__/graph.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:55` calls `GET /api/v1/graph/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-14c7f0914c03aace", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:62` calls `GET /api/v1/graph/query?workspaceId=ws1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d5053dfa802422d", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:72)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:72` calls `GET /api/v1/graph/query?workspaceId=ws1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-797340fe4246c83b", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:82` calls `GET /api/v1/graph/query?workspaceId=ws1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d5c8d860d25daf4", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:94)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:94` calls `GET /api/v1/graph/query?workspaceId=ws1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c00a70d0dc7ed2be", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&depth=0 (apps/api/src/__tests__/graph.test.ts:102)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&depth=0 (apps/api/src/__tests__/graph.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:102` calls `GET /api/v1/graph/query?workspaceId=ws1&depth=0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0bd7d45ec3d830ed", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&depth=6 (apps/api/src/__tests__/graph.test.ts:107)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&depth=6 (apps/api/src/__tests__/graph.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:107` calls `GET /api/v1/graph/query?workspaceId=ws1&depth=6` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5726c0d4b098291", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&limit=501 (apps/api/src/__tests__/graph.test.ts:112)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&limit=501 (apps/api/src/__tests__/graph.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:112` calls `GET /api/v1/graph/query?workspaceId=ws1&limit=501` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2eabacd8dffbf308", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:119)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:119` calls `GET /api/v1/graph/query?workspaceId=ws1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6db4eb8e8a7bb8e", "name": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&entityId=root (apps/api/src/__tests__/graph.test.ts:128)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&entityId=root (apps/api/src/__tests__/graph.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graph.test.ts:128` calls `GET /api/v1/graph/query?workspaceId=ws1&entityId=root` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/graph/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-114f11734eaea811", "name": "Dangling fetch: GET /quality2/score?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:27)", "shortDescription": {"text": "Dangling fetch: GET /quality2/score?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:27)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:27` calls `GET /quality2/score?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0dfdb629dbc96dcd", "name": "Dangling fetch: GET /quality2/score?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:35)", "shortDescription": {"text": "Dangling fetch: GET /quality2/score?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:35)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:35` calls `GET /quality2/score?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4dcd038421a678d", "name": "Dangling fetch: GET /quality2/by-type?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /quality2/by-type?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:47` calls `GET /quality2/by-type?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/by-type`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3ebda2278b25825", "name": "Dangling fetch: GET /quality2/by-type?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /quality2/by-type?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:61` calls `GET /quality2/by-type?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/by-type`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23b79337adcd1558", "name": "Dangling fetch: GET /quality2/issues?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:74)", "shortDescription": {"text": "Dangling fetch: GET /quality2/issues?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:74` calls `GET /quality2/issues?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb32e3902bc0f4c0", "name": "Dangling fetch: GET /quality2/issues?workspaceId=ws-1&severity=high (apps/api/src/__tests__/data-quality-engine.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /quality2/issues?workspaceId=ws-1&severity=high (apps/api/src/__tests__/data-quality-engine.test.ts:87)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:87` calls `GET /quality2/issues?workspaceId=ws-1&severity=high` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-396e146c5463e59b", "name": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:100)", "shortDescription": {"text": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:100)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:100` calls `POST /quality2/issues/i-1/apply-remediation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/issues/i-1/apply-remediation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97681e9eeedc6684", "name": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:118)", "shortDescription": {"text": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:118)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:118` calls `POST /quality2/issues/i-1/apply-remediation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/issues/i-1/apply-remediation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4795c42fee89a19", "name": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:131)", "shortDescription": {"text": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:131)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine.test.ts:131` calls `POST /quality2/issues/i-1/apply-remediation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/quality2/issues/i-1/apply-remediation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9a8e6d0cd05ef93", "name": "Dangling fetch: POST /mcp-responses/r-unknown/search (apps/api/src/__tests__/context-search.test.ts:44)", "shortDescription": {"text": "Dangling fetch: POST /mcp-responses/r-unknown/search (apps/api/src/__tests__/context-search.test.ts:44)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-search.test.ts:44` calls `POST /mcp-responses/r-unknown/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp-responses/r-unknown/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-8c67209f544e2647", "name": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:55)", "shortDescription": {"text": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-search.test.ts:55` calls `POST /mcp-responses/r-1/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp-responses/r-1/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-5152a7ab24cd400f", "name": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-search.test.ts:70` calls `POST /mcp-responses/r-1/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp-responses/r-1/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-6d32707bad2f9f87", "name": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:80)", "shortDescription": {"text": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-search.test.ts:80` calls `POST /mcp-responses/r-1/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp-responses/r-1/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-5f7cfe7412bdfc08", "name": "Dangling fetch: GET /analytics/index (apps/api/src/__tests__/index-composition.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /analytics/index (apps/api/src/__tests__/index-composition.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-composition.test.ts:55` calls `GET /analytics/index` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/index`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-099bfd013d1935df", "name": "Dangling fetch: GET /analytics/index?workspaceId=ws-1 (apps/api/src/__tests__/index-composition.test.ts:73)", "shortDescription": {"text": "Dangling fetch: GET /analytics/index?workspaceId=ws-1 (apps/api/src/__tests__/index-composition.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-composition.test.ts:73` calls `GET /analytics/index?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/index`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eba3c4d017a71beb", "name": "Dangling fetch: GET /analytics/index?workspaceId=ws-1 (apps/api/src/__tests__/index-composition.test.ts:91)", "shortDescription": {"text": "Dangling fetch: GET /analytics/index?workspaceId=ws-1 (apps/api/src/__tests__/index-composition.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-composition.test.ts:91` calls `GET /analytics/index?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/index`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d666f670813a1705", "name": "Dangling fetch: GET /analytics/index/snapshots (apps/api/src/__tests__/index-composition.test.ts:99)", "shortDescription": {"text": "Dangling fetch: GET /analytics/index/snapshots (apps/api/src/__tests__/index-composition.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-composition.test.ts:99` calls `GET /analytics/index/snapshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/index/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49152e90af9cf6ae", "name": "Dangling fetch: GET /analytics/index/snapshots?workspaceId=ws-1&days=7 (apps/api/src/__tests__/index-composition.test.ts", "shortDescription": {"text": "Dangling fetch: GET /analytics/index/snapshots?workspaceId=ws-1&days=7 (apps/api/src/__tests__/index-composition.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-composition.test.ts:116` calls `GET /analytics/index/snapshots?workspaceId=ws-1&days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/analytics/index/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4d8b5314e68f000", "name": "Dangling fetch: GET /connectors/inst-1?days=7 (apps/api/src/__tests__/admin-performance.test.ts:64)", "shortDescription": {"text": "Dangling fetch: GET /connectors/inst-1?days=7 (apps/api/src/__tests__/admin-performance.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-performance.test.ts:64` calls `GET /connectors/inst-1?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/inst-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95f0c7950251148d", "name": "Dangling fetch: GET /connectors/inst-2 (apps/api/src/__tests__/admin-performance.test.ts:77)", "shortDescription": {"text": "Dangling fetch: GET /connectors/inst-2 (apps/api/src/__tests__/admin-performance.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-performance.test.ts:77` calls `GET /connectors/inst-2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/inst-2`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8c1573b56cc5131", "name": "Dangling fetch: GET /connectors/inst-1?days=365 (apps/api/src/__tests__/admin-performance.test.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /connectors/inst-1?days=365 (apps/api/src/__tests__/admin-performance.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-performance.test.ts:88` calls `GET /connectors/inst-1?days=365` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/inst-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd32f1d54b5fb237", "name": "Dangling fetch: GET /connectors/inst-1 (apps/api/src/__tests__/admin-performance.test.ts:99)", "shortDescription": {"text": "Dangling fetch: GET /connectors/inst-1 (apps/api/src/__tests__/admin-performance.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-performance.test.ts:99` calls `GET /connectors/inst-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/inst-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12b848ecac8e166b", "name": "Dangling fetch: POST /recommendations/enable_semantic_cache/apply (apps/api/src/__tests__/cost-analytics.test.ts:95)", "shortDescription": {"text": "Dangling fetch: POST /recommendations/enable_semantic_cache/apply (apps/api/src/__tests__/cost-analytics.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-analytics.test.ts:95` calls `POST /recommendations/enable_semantic_cache/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recommendations/enable_semantic_cache/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a1ccd16b5e618c5", "name": "Dangling fetch: POST /recommendations/enable_semantic_cache/apply (apps/api/src/__tests__/cost-analytics.test.ts:109)", "shortDescription": {"text": "Dangling fetch: POST /recommendations/enable_semantic_cache/apply (apps/api/src/__tests__/cost-analytics.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-analytics.test.ts:109` calls `POST /recommendations/enable_semantic_cache/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recommendations/enable_semantic_cache/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-059a38afd3cf0120", "name": "Dangling fetch: PUT /links/link-1 (apps/api/src/__tests__/entity-linking.test.ts:115)", "shortDescription": {"text": "Dangling fetch: PUT /links/link-1 (apps/api/src/__tests__/entity-linking.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-linking.test.ts:115` calls `PUT /links/link-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/links/link-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c230fc6fa903756", "name": "Dangling fetch: PUT /links/bad (apps/api/src/__tests__/entity-linking.test.ts:125)", "shortDescription": {"text": "Dangling fetch: PUT /links/bad (apps/api/src/__tests__/entity-linking.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-linking.test.ts:125` calls `PUT /links/bad` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/links/bad`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d5a4d9953d88ad9c", "name": "Dangling fetch: DELETE /merges/m-1 (apps/api/src/__tests__/entity-linking.test.ts:170)", "shortDescription": {"text": "Dangling fetch: DELETE /merges/m-1 (apps/api/src/__tests__/entity-linking.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-linking.test.ts:170` calls `DELETE /merges/m-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/merges/m-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b94a46b7960d769f", "name": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:185)", "shortDescription": {"text": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:185)"}, "fullDescription": {"text": "`apps/api/src/__tests__/document-indexing.test.ts:185` calls `DELETE /connector/gdrive-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector/gdrive-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d2e2e3f85df4787", "name": "Dangling fetch: DELETE /connector/empty-conn (apps/api/src/__tests__/document-indexing.test.ts:193)", "shortDescription": {"text": "Dangling fetch: DELETE /connector/empty-conn (apps/api/src/__tests__/document-indexing.test.ts:193)"}, "fullDescription": {"text": "`apps/api/src/__tests__/document-indexing.test.ts:193` calls `DELETE /connector/empty-conn` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector/empty-conn`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a83f35cfd943d89", "name": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:200)", "shortDescription": {"text": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:200)"}, "fullDescription": {"text": "`apps/api/src/__tests__/document-indexing.test.ts:200` calls `DELETE /connector/gdrive-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector/gdrive-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e83b8365f8f2d879", "name": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:206)", "shortDescription": {"text": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:206)"}, "fullDescription": {"text": "`apps/api/src/__tests__/document-indexing.test.ts:206` calls `DELETE /connector/gdrive-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector/gdrive-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60d17f251e660a05", "name": "Dangling fetch: DELETE /connector/my-connector (apps/api/src/__tests__/document-indexing.test.ts:212)", "shortDescription": {"text": "Dangling fetch: DELETE /connector/my-connector (apps/api/src/__tests__/document-indexing.test.ts:212)"}, "fullDescription": {"text": "`apps/api/src/__tests__/document-indexing.test.ts:212` calls `DELETE /connector/my-connector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector/my-connector`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d08ed3545d6ffeb8", "name": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:76` calls `GET /api/v1/admin/connectors/hubspot/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-ff00f528e67c5a65", "name": "Dangling fetch: GET /api/v1/admin/connectors/salesforce/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.tes", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/salesforce/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:86` calls `GET /api/v1/admin/connectors/salesforce/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/salesforce/circuit-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-4a592c0c9605530d", "name": "Dangling fetch: GET /api/v1/admin/connectors/slack/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/slack/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:96)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:96` calls `GET /api/v1/admin/connectors/slack/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/slack/circuit-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-9f73e1cb2d6777e5", "name": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:105` calls `GET /api/v1/admin/connectors/hubspot/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-1e717409bced90e7", "name": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:113` calls `GET /api/v1/admin/connectors/hubspot/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-d9f9966fcd51d147", "name": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:120)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:120` calls `GET /api/v1/admin/connectors/hubspot/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-a3f24250d5718816", "name": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:128` calls `GET /api/v1/admin/connectors/hubspot/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-adae249854c0e371", "name": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:139)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:139` calls `POST /api/v1/admin/connectors/hubspot/circuit-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-f9ff864df2bfe64f", "name": "Dangling fetch: POST /api/v1/admin/connectors/salesforce/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.tes", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/connectors/salesforce/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:150` calls `POST /api/v1/admin/connectors/salesforce/circuit-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/salesforce/circuit-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-bd36a7179cb9e342", "name": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:160)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:160` calls `POST /api/v1/admin/connectors/hubspot/circuit-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-de6616007b9ca474", "name": "Dangling fetch: POST /api/v1/admin/connectors/my-connector/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/connectors/my-connector/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:169)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:169` calls `POST /api/v1/admin/connectors/my-connector/circuit-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/my-connector/circuit-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-2e4787ce50ca06c4", "name": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:178)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:178` calls `POST /api/v1/admin/connectors/hubspot/circuit-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/hubspot/circuit-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-ca9f11529da3c8f4", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:188)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:188)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:188` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-4543e6cf0ffd8f7c", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:198)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:198)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:198` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-d7e32d96a2a5d2a3", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:208)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:208)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:208` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-347c45e349086ef9", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:216)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:216)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:216` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-7a4ea16f3a96473f", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:222)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:222)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:222` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-d203dda421001504", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:231)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:231)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:231` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-9f0e468023aa764a", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:242)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:242)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:242` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-af692bfd2074f70b", "name": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:251)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:251)"}, "fullDescription": {"text": "`apps/api/src/__tests__/circuit-breaker-admin.test.ts:251` calls `GET /api/v1/admin/connectors/circuit-summary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/circuit-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-63c07dc3c4febfeb", "name": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:125` calls `GET /admin/webhooks/wh-1/deliveries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/deliveries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d074f65d4b779ee", "name": "Dangling fetch: GET /admin/webhooks/wh-new/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:133)", "shortDescription": {"text": "Dangling fetch: GET /admin/webhooks/wh-new/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:133` calls `GET /admin/webhooks/wh-new/deliveries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-new/deliveries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d39bc6617e74817", "name": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:141` calls `GET /admin/webhooks/wh-1/deliveries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/deliveries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aec2d3f6b6ffa0f5", "name": "Dangling fetch: GET /admin/webhooks/my-hook/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:147)", "shortDescription": {"text": "Dangling fetch: GET /admin/webhooks/my-hook/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:147` calls `GET /admin/webhooks/my-hook/deliveries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/my-hook/deliveries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d767446d28243d7", "name": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries?limit=10 (apps/api/src/__tests__/webhook-admin.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries?limit=10 (apps/api/src/__tests__/webhook-admin.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:153` calls `GET /admin/webhooks/wh-1/deliveries?limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/deliveries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-021310558c237999", "name": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:161)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:161)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:161` calls `POST /admin/webhooks/wh-1/test-delivery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/test-delivery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-29ee68bfc6b81abf", "name": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:171)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:171)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:171` calls `POST /admin/webhooks/wh-1/test-delivery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/test-delivery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03b18df568cf054a", "name": "Dangling fetch: POST /admin/webhooks/bad/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:182)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/bad/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:182)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:182` calls `POST /admin/webhooks/bad/test-delivery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/bad/test-delivery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1516dc4d5b1f9e14", "name": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:192)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:192)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:192` calls `POST /admin/webhooks/wh-1/test-delivery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/test-delivery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7ea9c28699d5700", "name": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:202)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:202)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:202` calls `POST /admin/webhooks/wh-1/test-delivery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/test-delivery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16924ba68391cdab", "name": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-1 (apps/api/src/__tests__/webhook-admin.test.ts:215)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-1 (apps/api/src/__tests__/webhook-admin.test.ts:215)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:215` calls `POST /admin/webhooks/wh-1/retry/d-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/retry/d-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2494b31c995160c8", "name": "Dangling fetch: POST /admin/webhooks/wh-1/retry/bad (apps/api/src/__tests__/webhook-admin.test.ts:223)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/bad (apps/api/src/__tests__/webhook-admin.test.ts:223)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:223` calls `POST /admin/webhooks/wh-1/retry/bad` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/retry/bad`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a55e826b12901f7b", "name": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-1 (apps/api/src/__tests__/webhook-admin.test.ts:229)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-1 (apps/api/src/__tests__/webhook-admin.test.ts:229)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:229` calls `POST /admin/webhooks/wh-1/retry/d-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/retry/d-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-280b1915111b985d", "name": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-test (apps/api/src/__tests__/webhook-admin.test.ts:235)", "shortDescription": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-test (apps/api/src/__tests__/webhook-admin.test.ts:235)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhook-admin.test.ts:235` calls `POST /admin/webhooks/wh-1/retry/d-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/webhooks/wh-1/retry/d-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-34db06689c18507c", "name": "Dangling fetch: POST /recommendations/00000000-0000-0000-0000-000000000000/apply-test (apps/api/src/__tests__/auto-tunin", "shortDescription": {"text": "Dangling fetch: POST /recommendations/00000000-0000-0000-0000-000000000000/apply-test (apps/api/src/__tests__/auto-tuning.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/auto-tuning.test.ts:102` calls `POST /recommendations/00000000-0000-0000-0000-000000000000/apply-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recommendations/00000000-0000-0000-0000-000000000000/apply-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-0915a81593fcbab1", "name": "Dangling fetch: POST /recommendations/not-a-uuid/apply-test (apps/api/src/__tests__/auto-tuning.test.ts:111)", "shortDescription": {"text": "Dangling fetch: POST /recommendations/not-a-uuid/apply-test (apps/api/src/__tests__/auto-tuning.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/auto-tuning.test.ts:111` calls `POST /recommendations/not-a-uuid/apply-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recommendations/not-a-uuid/apply-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-0a9ffba143912e79", "name": "Dangling fetch: POST /recommendations/rec-1/feedback (apps/api/src/__tests__/auto-tuning.test.ts:125)", "shortDescription": {"text": "Dangling fetch: POST /recommendations/rec-1/feedback (apps/api/src/__tests__/auto-tuning.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/auto-tuning.test.ts:125` calls `POST /recommendations/rec-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recommendations/rec-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06997fba10ffc491", "name": "Dangling fetch: POST /recommendations/rec-1/feedback (apps/api/src/__tests__/auto-tuning.test.ts:135)", "shortDescription": {"text": "Dangling fetch: POST /recommendations/rec-1/feedback (apps/api/src/__tests__/auto-tuning.test.ts:135)"}, "fullDescription": {"text": "`apps/api/src/__tests__/auto-tuning.test.ts:135` calls `POST /recommendations/rec-1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recommendations/rec-1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85ca89c24c5c7347", "name": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-config.test.ts:40)", "shortDescription": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-config.test.ts:40)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-config.test.ts:40` calls `GET /enrichments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25bc1cc2ac165647", "name": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-config.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-config.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-config.test.ts:48` calls `GET /enrichments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd5596d4f05f72a8", "name": "Dangling fetch: GET /enrichments/sources/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/sources/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-config.test.ts:56` calls `GET /enrichments/sources/src-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/sources/src-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eba411694794b282", "name": "Dangling fetch: GET /enrichments/sources/nonexistent (apps/api/src/__tests__/enrichment-config.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/sources/nonexistent (apps/api/src/__tests__/enrichment-config.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-config.test.ts:62` calls `GET /enrichments/sources/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/sources/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7dd2fd10f670e925", "name": "Dangling fetch: POST /enrichments/configure/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /enrichments/configure/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-config.test.ts:70` calls `POST /enrichments/configure/src-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/configure/src-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd9fb13c00209254", "name": "Dangling fetch: POST /enrichments/configure/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:79)", "shortDescription": {"text": "Dangling fetch: POST /enrichments/configure/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-config.test.ts:79` calls `POST /enrichments/configure/src-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/configure/src-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e6be02bf618e21d", "name": "Dangling fetch: POST /demo/bootstrap (apps/api/src/__tests__/demo-bootstrap.test.ts:59)", "shortDescription": {"text": "Dangling fetch: POST /demo/bootstrap (apps/api/src/__tests__/demo-bootstrap.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/demo-bootstrap.test.ts:59` calls `POST /demo/bootstrap` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/demo/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-03b821ca653edd83", "name": "Dangling fetch: POST /snapshots/snap-1/restore (apps/api/src/__tests__/snapshots.test.ts:141)", "shortDescription": {"text": "Dangling fetch: POST /snapshots/snap-1/restore (apps/api/src/__tests__/snapshots.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/snapshots.test.ts:141` calls `POST /snapshots/snap-1/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/snapshots/snap-1/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7615fe7ca7da3f87", "name": "Dangling fetch: POST /snapshots/nonexistent/restore (apps/api/src/__tests__/snapshots.test.ts:149)", "shortDescription": {"text": "Dangling fetch: POST /snapshots/nonexistent/restore (apps/api/src/__tests__/snapshots.test.ts:149)"}, "fullDescription": {"text": "`apps/api/src/__tests__/snapshots.test.ts:149` calls `POST /snapshots/nonexistent/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/snapshots/nonexistent/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed70b5d87db8d4f2", "name": "Dangling fetch: POST /snapshots/snap-creating/restore (apps/api/src/__tests__/snapshots.test.ts:157)", "shortDescription": {"text": "Dangling fetch: POST /snapshots/snap-creating/restore (apps/api/src/__tests__/snapshots.test.ts:157)"}, "fullDescription": {"text": "`apps/api/src/__tests__/snapshots.test.ts:157` calls `POST /snapshots/snap-creating/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/snapshots/snap-creating/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2002e218aed2de28", "name": "Dangling fetch: POST /snapshots/snap-1/restore (apps/api/src/__tests__/snapshots.test.ts:164)", "shortDescription": {"text": "Dangling fetch: POST /snapshots/snap-1/restore (apps/api/src/__tests__/snapshots.test.ts:164)"}, "fullDescription": {"text": "`apps/api/src/__tests__/snapshots.test.ts:164` calls `POST /snapshots/snap-1/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/snapshots/snap-1/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1716a9545e10857c", "name": "Dangling fetch: GET /graphql/schema (apps/api/src/__tests__/graphql.test.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /graphql/schema (apps/api/src/__tests__/graphql.test.ts:41)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:41` calls `GET /graphql/schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-affe265bd24ec81b", "name": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:51)", "shortDescription": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:51` calls `POST /graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f652e8077fcbf525", "name": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:62)", "shortDescription": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:62` calls `POST /graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b47af6721a998088", "name": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:74` calls `POST /graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccb9bc753ab06b7c", "name": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:88)", "shortDescription": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:88` calls `POST /graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8299d4e980fce5d", "name": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:102` calls `POST /graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82e22c8ea1c1bc32", "name": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:123` calls `POST /graphql/batch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/batch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4284a47408dee1d6", "name": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:134` calls `POST /graphql/batch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/batch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5354a709232394f6", "name": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:147)", "shortDescription": {"text": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:147` calls `POST /graphql/batch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/batch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6ad32a65879944a", "name": "Dangling fetch: POST /graphql/hash (apps/api/src/__tests__/graphql.test.ts:162)", "shortDescription": {"text": "Dangling fetch: POST /graphql/hash (apps/api/src/__tests__/graphql.test.ts:162)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:162` calls `POST /graphql/hash` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/hash`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c7921d31de9f3e4", "name": "Dangling fetch: POST /graphql/hash (apps/api/src/__tests__/graphql.test.ts:174)", "shortDescription": {"text": "Dangling fetch: POST /graphql/hash (apps/api/src/__tests__/graphql.test.ts:174)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:174` calls `POST /graphql/hash` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/hash`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3be02be495f4d25e", "name": "Dangling fetch: GET /graphql/audit (apps/api/src/__tests__/graphql.test.ts:186)", "shortDescription": {"text": "Dangling fetch: GET /graphql/audit (apps/api/src/__tests__/graphql.test.ts:186)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:186` calls `GET /graphql/audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c16f3b8dab9714d", "name": "Dangling fetch: GET /graphql/audit?workspaceId=ws-1 (apps/api/src/__tests__/graphql.test.ts:193)", "shortDescription": {"text": "Dangling fetch: GET /graphql/audit?workspaceId=ws-1 (apps/api/src/__tests__/graphql.test.ts:193)"}, "fullDescription": {"text": "`apps/api/src/__tests__/graphql.test.ts:193` calls `GET /graphql/audit?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graphql/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-103cee1c43caf4fd", "name": "Dangling fetch: POST /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:74` calls `POST /context/snapshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f402edce0bab931e", "name": "Dangling fetch: POST /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:86)", "shortDescription": {"text": "Dangling fetch: POST /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:86` calls `POST /context/snapshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e65e030544611443", "name": "Dangling fetch: GET /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:97)", "shortDescription": {"text": "Dangling fetch: GET /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:97` calls `GET /context/snapshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2301b07ad735f17e", "name": "Dangling fetch: GET /context/snapshots?limit=10&cursor=snap-1 (apps/api/src/__tests__/context-versioning.test.ts:107)", "shortDescription": {"text": "Dangling fetch: GET /context/snapshots?limit=10&cursor=snap-1 (apps/api/src/__tests__/context-versioning.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:107` calls `GET /context/snapshots?limit=10&cursor=snap-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74e4ece44466c13c", "name": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:116)", "shortDescription": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:116` calls `POST /context/query-as-of` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/query-as-of`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb568e7e415896aa", "name": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:128)", "shortDescription": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:128` calls `POST /context/query-as-of` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/query-as-of`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-094b9661850438c5", "name": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:137)", "shortDescription": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:137` calls `POST /context/query-as-of` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/query-as-of`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-143dff174207baed", "name": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:146` calls `POST /context/query-as-of` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/query-as-of`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-794d1d536d5cc5ce", "name": "Dangling fetch: GET /context/versions/snap-1/diff?toVersion=snap-2 (apps/api/src/__tests__/context-versioning.test.ts:15", "shortDescription": {"text": "Dangling fetch: GET /context/versions/snap-1/diff?toVersion=snap-2 (apps/api/src/__tests__/context-versioning.test.ts:157)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:157` calls `GET /context/versions/snap-1/diff?toVersion=snap-2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/versions/snap-1/diff`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f4e08fe6053db38", "name": "Dangling fetch: GET /context/versions/snap-1/diff (apps/api/src/__tests__/context-versioning.test.ts:166)", "shortDescription": {"text": "Dangling fetch: GET /context/versions/snap-1/diff (apps/api/src/__tests__/context-versioning.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:166` calls `GET /context/versions/snap-1/diff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/versions/snap-1/diff`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cd1e4dc6191bceb", "name": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:175)", "shortDescription": {"text": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:175)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:175` calls `POST /context/rollback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/rollback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98242d9fd3f48876", "name": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:186)", "shortDescription": {"text": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:186)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:186` calls `POST /context/rollback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/rollback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8070b7ccc88da602", "name": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:195)", "shortDescription": {"text": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:195)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-versioning.test.ts:195` calls `POST /context/rollback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context/rollback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e79ed048610d9e3d", "name": "Dangling fetch: GET /api/v1/cache/prewarming-stats (apps/api/src/__tests__/cache-prewarming.test.ts:23)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/prewarming-stats (apps/api/src/__tests__/cache-prewarming.test.ts:23)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:23` calls `GET /api/v1/cache/prewarming-stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/prewarming-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-965990d26015c175", "name": "Dangling fetch: GET /api/v1/cache/prewarming-stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:38)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/prewarming-stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:38)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:38` calls `GET /api/v1/cache/prewarming-stats?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/prewarming-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-a3415c95ff9d78bc", "name": "Dangling fetch: GET /api/v1/cache/prewarming-stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/prewarming-stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:47` calls `GET /api/v1/cache/prewarming-stats?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/prewarming-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-306ee508145b8b0e", "name": "Dangling fetch: GET /api/v1/cache/patterns?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/patterns?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:58` calls `GET /api/v1/cache/patterns?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/patterns`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05a298b188425048", "name": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/cache-prewarming.test.ts:68)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/cache-prewarming.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:68` calls `POST /api/v1/cache/preload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/preload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4bfc0a3729b5aa4", "name": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/cache-prewarming.test.ts:84)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/cache-prewarming.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:84` calls `POST /api/v1/cache/preload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/preload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18ed21573109c277", "name": "Dangling fetch: POST /api/v1/cache/predict (apps/api/src/__tests__/cache-prewarming.test.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/predict (apps/api/src/__tests__/cache-prewarming.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:98` calls `POST /api/v1/cache/predict` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/predict`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2461bd16228d839", "name": "Dangling fetch: POST /api/v1/cache/predict (apps/api/src/__tests__/cache-prewarming.test.ts:115)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/predict (apps/api/src/__tests__/cache-prewarming.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-prewarming.test.ts:115` calls `POST /api/v1/cache/predict` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/predict`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fba995899bbb3e2b", "name": "Dangling fetch: GET /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:50)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:50)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:50` calls `GET /api/v1/llm-providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1897b1c6f20d5641", "name": "Dangling fetch: GET /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:58` calls `GET /api/v1/llm-providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84ad7885f50b61af", "name": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:74` calls `POST /api/v1/llm-providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bceab0cbec220dca", "name": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:89)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:89` calls `POST /api/v1/llm-providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-701463703b434f62", "name": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:98` calls `POST /api/v1/llm-providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c22e7f059c7fde2", "name": "Dangling fetch: DELETE /api/v1/llm-providers/cfg-1 (apps/api/src/__tests__/llm-providers.test.ts:118)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/llm-providers/cfg-1 (apps/api/src/__tests__/llm-providers.test.ts:118)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:118` calls `DELETE /api/v1/llm-providers/cfg-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers/cfg-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e69ecaef72609e2a", "name": "Dangling fetch: DELETE /api/v1/llm-providers/cfg-x (apps/api/src/__tests__/llm-providers.test.ts:126)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/llm-providers/cfg-x (apps/api/src/__tests__/llm-providers.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:126` calls `DELETE /api/v1/llm-providers/cfg-x` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers/cfg-x`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-160ad70072372ecf", "name": "Dangling fetch: POST /api/v1/llm-providers/cfg-1/test (apps/api/src/__tests__/llm-providers.test.ts:142)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/llm-providers/cfg-1/test (apps/api/src/__tests__/llm-providers.test.ts:142)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:142` calls `POST /api/v1/llm-providers/cfg-1/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers/cfg-1/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-59dc12a7f239e697", "name": "Dangling fetch: POST /api/v1/llm-providers/cfg-1/test (apps/api/src/__tests__/llm-providers.test.ts:150)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/llm-providers/cfg-1/test (apps/api/src/__tests__/llm-providers.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-providers.test.ts:150` calls `POST /api/v1/llm-providers/cfg-1/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/llm-providers/cfg-1/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-770a02337571bb8c", "name": "Dangling fetch: GET /enrichment/quality/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /enrichment/quality/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:42` calls `GET /enrichment/quality/clearbit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/quality/clearbit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d5e8e18cdb4fb75", "name": "Dangling fetch: GET /enrichment/quality/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:52)", "shortDescription": {"text": "Dangling fetch: GET /enrichment/quality/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:52` calls `GET /enrichment/quality/clearbit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/quality/clearbit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-014eac4134bc3bc0", "name": "Dangling fetch: GET /enrichment/gaps?connectorId=clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /enrichment/gaps?connectorId=clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:61` calls `GET /enrichment/gaps?connectorId=clearbit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/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-24f443153db1c5d9", "name": "Dangling fetch: GET /enrichment/gaps?entityType=contact&connectorId=clearbit (apps/api/src/__tests__/enrichment-quality.", "shortDescription": {"text": "Dangling fetch: GET /enrichment/gaps?entityType=contact&connectorId=clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:72` calls `GET /enrichment/gaps?entityType=contact&connectorId=clearbit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/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-b366a54c11c5d0fb", "name": "Dangling fetch: GET /enrichment/sources/clearbit/reliability (apps/api/src/__tests__/enrichment-quality.test.ts:87)", "shortDescription": {"text": "Dangling fetch: GET /enrichment/sources/clearbit/reliability (apps/api/src/__tests__/enrichment-quality.test.ts:87)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:87` calls `GET /enrichment/sources/clearbit/reliability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/sources/clearbit/reliability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7570e6ecd2018f0", "name": "Dangling fetch: POST /enrichment/sources/feedback (apps/api/src/__tests__/enrichment-quality.test.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /enrichment/sources/feedback (apps/api/src/__tests__/enrichment-quality.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:98` calls `POST /enrichment/sources/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/sources/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-69cb343b0834216f", "name": "Dangling fetch: POST /enrichment/sources/feedback (apps/api/src/__tests__/enrichment-quality.test.ts:109)", "shortDescription": {"text": "Dangling fetch: POST /enrichment/sources/feedback (apps/api/src/__tests__/enrichment-quality.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:109` calls `POST /enrichment/sources/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/sources/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9efbe2313a45f63d", "name": "Dangling fetch: GET /enrichment/roi/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /enrichment/roi/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-quality.test.ts:122` calls `GET /enrichment/roi/clearbit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichment/roi/clearbit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae5a8cfcc9f583de", "name": "Dangling fetch: GET /api/v1/documents/search?q=strategy (apps/api/src/__tests__/documents.test.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/documents/search?q=strategy (apps/api/src/__tests__/documents.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:47` calls `GET /api/v1/documents/search?q=strategy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/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-a8f0c5b462e8bafe", "name": "Dangling fetch: GET /api/v1/documents/search (apps/api/src/__tests__/documents.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/documents/search (apps/api/src/__tests__/documents.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:58` calls `GET /api/v1/documents/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/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-005a6167c1d00fe9", "name": "Dangling fetch: GET /api/v1/documents/search?q=test&limit=200 (apps/api/src/__tests__/documents.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/documents/search?q=test&limit=200 (apps/api/src/__tests__/documents.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:66` calls `GET /api/v1/documents/search?q=test&limit=200` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/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-3249f61cfcf49977", "name": "Dangling fetch: GET /api/v1/documents/search?q=test (apps/api/src/__tests__/documents.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/documents/search?q=test (apps/api/src/__tests__/documents.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:83` calls `GET /api/v1/documents/search?q=test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/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-7685e12ef7419e0d", "name": "Dangling fetch: GET /api/v1/documents/stats (apps/api/src/__tests__/documents.test.ts:95)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/documents/stats (apps/api/src/__tests__/documents.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:95` calls `GET /api/v1/documents/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/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-86b4c2ae363eafd0", "name": "Dangling fetch: GET /api/v1/documents/stats (apps/api/src/__tests__/documents.test.ts:115)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/documents/stats (apps/api/src/__tests__/documents.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:115` calls `GET /api/v1/documents/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/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-1e70f87111eafe7e", "name": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:130)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:130` calls `POST /api/v1/documents/import/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/import/bulk`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-747a767d4fc54147", "name": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:142)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:142)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:142` calls `POST /api/v1/documents/import/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/import/bulk`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0c88dfcfabeada5", "name": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:151)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:151` calls `POST /api/v1/documents/import/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/import/bulk`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ab25638d76aeb81", "name": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:172)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:172)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:172` calls `POST /api/v1/documents/import/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/import/bulk`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f0e438a370796cd", "name": "Dangling fetch: DELETE /api/v1/documents/connector/notion-prod (apps/api/src/__tests__/documents.test.ts:187)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/documents/connector/notion-prod (apps/api/src/__tests__/documents.test.ts:187)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:187` calls `DELETE /api/v1/documents/connector/notion-prod` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/connector/notion-prod`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68653d121eb653f7", "name": "Dangling fetch: DELETE /api/v1/documents/connector/bad-conn (apps/api/src/__tests__/documents.test.ts:207)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/documents/connector/bad-conn (apps/api/src/__tests__/documents.test.ts:207)"}, "fullDescription": {"text": "`apps/api/src/__tests__/documents.test.ts:207` calls `DELETE /api/v1/documents/connector/bad-conn` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/documents/connector/bad-conn`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e50ed949febcd6d4", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:62)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:62` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8615c0d540ae012e", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:75)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:75` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73dfa6b72c2eed59", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:85)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:85` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fb7c83bf0dd0b4f", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:97)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:97` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93c4664315ccb0b1", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:107)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:107` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7ec05112ecc2c66", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:130)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:130` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccbc63706d8293e5", "name": "Dangling fetch: GET /api/v1/queries/cost-history (apps/api/src/__tests__/query-cost-analysis.test.ts:150)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/queries/cost-history (apps/api/src/__tests__/query-cost-analysis.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:150` calls `GET /api/v1/queries/cost-history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/cost-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-a117e5b7e5323412", "name": "Dangling fetch: GET /api/v1/queries/cost-history?limit=10&cursor=2026-01-01T00:00:00Z (apps/api/src/__tests__/query-cost", "shortDescription": {"text": "Dangling fetch: GET /api/v1/queries/cost-history?limit=10&cursor=2026-01-01T00:00:00Z (apps/api/src/__tests__/query-cost-analysis.test.ts:162)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:162` calls `GET /api/v1/queries/cost-history?limit=10&cursor=2026-01-01T00:00:00Z` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/cost-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-eaded8fd465144d9", "name": "Dangling fetch: GET /api/v1/queries/cost-history?limit=9999 (apps/api/src/__tests__/query-cost-analysis.test.ts:169)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/queries/cost-history?limit=9999 (apps/api/src/__tests__/query-cost-analysis.test.ts:169)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:169` calls `GET /api/v1/queries/cost-history?limit=9999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/cost-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-01fb7b7603d86446", "name": "Dangling fetch: GET /api/v1/queries/cost-history (apps/api/src/__tests__/query-cost-analysis.test.ts:190)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/queries/cost-history (apps/api/src/__tests__/query-cost-analysis.test.ts:190)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-cost-analysis.test.ts:190` calls `GET /api/v1/queries/cost-history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/cost-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-17307a6c3dc648e8", "name": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:13)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:13)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:13` calls `GET /mcp/resources?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8b52a3b461225cd", "name": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:21)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:21)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:21` calls `GET /mcp/resources?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e94fc0f0da52ca7b", "name": "Dangling fetch: GET /mcp/resources?workspaceId=my-ws (apps/api/src/__tests__/mcp-resources.test.ts:30)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=my-ws (apps/api/src/__tests__/mcp-resources.test.ts:30)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:30` calls `GET /mcp/resources?workspaceId=my-ws` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38bf520bb01f57fd", "name": "Dangling fetch: GET /mcp/resources (apps/api/src/__tests__/mcp-resources.test.ts:37)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources (apps/api/src/__tests__/mcp-resources.test.ts:37)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:37` calls `GET /mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a33920b2057ff847", "name": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:45)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:45` calls `GET /mcp/resources?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f3884fa97cc8ea0", "name": "Dangling fetch: GET /mcp/resources/uri?workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:57)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:57` calls `GET /mcp/resources/uri?workspaceId=ws-1&entityId=e:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9ffca4179ef7beb", "name": "Dangling fetch: GET /mcp/resources/uri?type=entity&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:62` calls `GET /mcp/resources/uri?type=entity&entityId=e:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d269b26b8fa6ec2", "name": "Dangling fetch: GET /mcp/resources/uri?type=entity&workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:67)", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity&workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:67` calls `GET /mcp/resources/uri?type=entity&workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcf693f8c5e47135", "name": "Dangling fetch: GET /mcp/resources/uri?type=entity&workspaceId=ws-1&entityId=hubspot:contact:1 (apps/api/src/__tests__/m", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity&workspaceId=ws-1&entityId=hubspot:contact:1 (apps/api/src/__tests__/mcp-resources.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:72` calls `GET /mcp/resources/uri?type=entity&workspaceId=ws-1&entityId=hubspot:contact:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5fd682365f49c126", "name": "Dangling fetch: GET /mcp/resources/uri?type=entity-graph&workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resou", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity-graph&workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:79` calls `GET /mcp/resources/uri?type=entity-graph&workspaceId=ws-1&entityId=e:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7cd8a5a2956dd37", "name": "Dangling fetch: GET /mcp/resources/uri?type=document&workspaceId=ws-1&entityId=doc:1 (apps/api/src/__tests__/mcp-resourc", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?type=document&workspaceId=ws-1&entityId=doc:1 (apps/api/src/__tests__/mcp-resources.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:86` calls `GET /mcp/resources/uri?type=document&workspaceId=ws-1&entityId=doc:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d1a42fa30a2f5ca", "name": "Dangling fetch: GET /mcp/resources/uri?type=unknown&workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.", "shortDescription": {"text": "Dangling fetch: GET /mcp/resources/uri?type=unknown&workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resources.test.ts:93` calls `GET /mcp/resources/uri?type=unknown&workspaceId=ws-1&entityId=e:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0c4568a49d2df38d", "name": "Dangling fetch: POST /api/v1/cost-attribution/attribute (apps/api/src/__tests__/cost-attribution.test.ts:36)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cost-attribution/attribute (apps/api/src/__tests__/cost-attribution.test.ts:36)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:36` calls `POST /api/v1/cost-attribution/attribute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/attribute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5488ceb0f51f637b", "name": "Dangling fetch: POST /api/v1/cost-attribution/attribute (apps/api/src/__tests__/cost-attribution.test.ts:47)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cost-attribution/attribute (apps/api/src/__tests__/cost-attribution.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:47` calls `POST /api/v1/cost-attribution/attribute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/attribute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47a2d2076999a192", "name": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1 (apps/api/src/__tests__/cost-attribution.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1 (apps/api/src/__tests__/cost-attribution.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:58` calls `GET /api/v1/cost-attribution/entities/e1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/entities/e1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b500c7ed773b3e1c", "name": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1/forecast?interval=week (apps/api/src/__tests__/cost-attribution", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1/forecast?interval=week (apps/api/src/__tests__/cost-attribution.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:67` calls `GET /api/v1/cost-attribution/entities/e1/forecast?interval=week` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/entities/e1/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d0812ced608ab3c", "name": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1/forecast?interval=year (apps/api/src/__tests__/cost-attribution", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1/forecast?interval=year (apps/api/src/__tests__/cost-attribution.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:74` calls `GET /api/v1/cost-attribution/entities/e1/forecast?interval=year` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/entities/e1/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e16575328f818f8c", "name": "Dangling fetch: GET /api/v1/cost-attribution/connectors/hubspot?period=month (apps/api/src/__tests__/cost-attribution.te", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cost-attribution/connectors/hubspot?period=month (apps/api/src/__tests__/cost-attribution.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:81` calls `GET /api/v1/cost-attribution/connectors/hubspot?period=month` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/connectors/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9f42d2ffff5559fc", "name": "Dangling fetch: GET /api/v1/cost-attribution/connectors/hubspot?period=quarter (apps/api/src/__tests__/cost-attribution.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cost-attribution/connectors/hubspot?period=quarter (apps/api/src/__tests__/cost-attribution.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:88` calls `GET /api/v1/cost-attribution/connectors/hubspot?period=quarter` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/connectors/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38152ef2892c09ef", "name": "Dangling fetch: GET /api/v1/cost-attribution/users/u1?period=month (apps/api/src/__tests__/cost-attribution.test.ts:95)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cost-attribution/users/u1?period=month (apps/api/src/__tests__/cost-attribution.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:95` calls `GET /api/v1/cost-attribution/users/u1?period=month` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/users/u1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e44f05460277f461", "name": "Dangling fetch: POST /api/v1/cost-attribution/connector-events (apps/api/src/__tests__/cost-attribution.test.ts:104)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cost-attribution/connector-events (apps/api/src/__tests__/cost-attribution.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-attribution.test.ts:104` calls `POST /api/v1/cost-attribution/connector-events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cost-attribution/connector-events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5317915cdd07f9d8", "name": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:78)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:78` calls `POST /connector-benchmarks/hubspot/benchmark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/benchmark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc5dfd9484b8092c", "name": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:90` calls `POST /connector-benchmarks/hubspot/benchmark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/benchmark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d326b6f891f3076", "name": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:100)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:100)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:100` calls `POST /connector-benchmarks/hubspot/benchmark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/benchmark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd002514d3e58eda", "name": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results (apps/api/src/__tests__/connector-benchmarks.test.ts", "shortDescription": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results (apps/api/src/__tests__/connector-benchmarks.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:114` calls `GET /connector-benchmarks/hubspot/benchmark-results` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/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-b8a67d722e119947", "name": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results?entityType=contact (apps/api/src/__tests__/connector", "shortDescription": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results?entityType=contact (apps/api/src/__tests__/connector-benchmarks.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:122` calls `GET /connector-benchmarks/hubspot/benchmark-results?entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/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-d86f452829de3401", "name": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results?limit=10 (apps/api/src/__tests__/connector-benchmark", "shortDescription": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results?limit=10 (apps/api/src/__tests__/connector-benchmarks.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:128` calls `GET /connector-benchmarks/hubspot/benchmark-results?limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/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-fb154399c6c47360", "name": "Dangling fetch: POST /connector-benchmarks/compare (apps/api/src/__tests__/connector-benchmarks.test.ts:138)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/compare (apps/api/src/__tests__/connector-benchmarks.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:138` calls `POST /connector-benchmarks/compare` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/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-6bcce6c1a8b3d104", "name": "Dangling fetch: POST /connector-benchmarks/compare (apps/api/src/__tests__/connector-benchmarks.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/compare (apps/api/src/__tests__/connector-benchmarks.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:154` calls `POST /connector-benchmarks/compare` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/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-73f44ebb1cbdaa1f", "name": "Dangling fetch: POST /connector-benchmarks/benchmark-matrix (apps/api/src/__tests__/connector-benchmarks.test.ts:168)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/benchmark-matrix (apps/api/src/__tests__/connector-benchmarks.test.ts:168)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:168` calls `POST /connector-benchmarks/benchmark-matrix` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/benchmark-matrix`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb0418c540861aae", "name": "Dangling fetch: POST /connector-benchmarks/benchmark-matrix (apps/api/src/__tests__/connector-benchmarks.test.ts:183)", "shortDescription": {"text": "Dangling fetch: POST /connector-benchmarks/benchmark-matrix (apps/api/src/__tests__/connector-benchmarks.test.ts:183)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:183` calls `POST /connector-benchmarks/benchmark-matrix` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/benchmark-matrix`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9da949ebd31edea8", "name": "Dangling fetch: GET /connector-benchmarks/hubspot/regression?entityType=contact (apps/api/src/__tests__/connector-benchm", "shortDescription": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/regression?entityType=contact (apps/api/src/__tests__/connector-benchmarks.test.ts:197)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:197` calls `GET /connector-benchmarks/hubspot/regression?entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/regression`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9cd930bb20095c90", "name": "Dangling fetch: GET /connector-benchmarks/hubspot/regression (apps/api/src/__tests__/connector-benchmarks.test.ts:205)", "shortDescription": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/regression (apps/api/src/__tests__/connector-benchmarks.test.ts:205)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-benchmarks.test.ts:205` calls `GET /connector-benchmarks/hubspot/regression` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connector-benchmarks/hubspot/regression`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4cdc12084be0dc47", "name": "Dangling fetch: GET /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:42` calls `GET /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee0e7c0abba0af33", "name": "Dangling fetch: GET /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:61` calls `GET /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09a9778e103e9afb", "name": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:69)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:69` calls `PUT /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90cf72bb82d4e1d2", "name": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:81)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:81` calls `PUT /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aac61215ee5fa1e3", "name": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:91)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:91` calls `PUT /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b5dc2c6e876acb3", "name": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:109)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:109` calls `PUT /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c37b3353d5662b7", "name": "Dangling fetch: DELETE /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:121)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:121` calls `DELETE /api/v1/admin/relevance/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4221f9130a9b9426", "name": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:140)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:140` calls `POST /api/v1/admin/relevance/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f527365707138b4d", "name": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:151)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:151` calls `POST /api/v1/admin/relevance/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63af5f3bd99cb783", "name": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:160)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:160)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:160` calls `POST /api/v1/admin/relevance/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2d7db034d9181e5", "name": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:169)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:169)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:169` calls `POST /api/v1/admin/relevance/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2aa58baa6c511fbd", "name": "Dangling fetch: GET /api/v1/admin/relevance/metrics (apps/api/src/__tests__/relevance.test.ts:181)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/relevance/metrics (apps/api/src/__tests__/relevance.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:181` calls `GET /api/v1/admin/relevance/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/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-75e50da98325b87f", "name": "Dangling fetch: GET /api/v1/admin/relevance/metrics?days=180 (apps/api/src/__tests__/relevance.test.ts:192)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/relevance/metrics?days=180 (apps/api/src/__tests__/relevance.test.ts:192)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relevance.test.ts:192` calls `GET /api/v1/admin/relevance/metrics?days=180` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/relevance/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-a88b41333245b464", "name": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:74` calls `POST /llm-cost-optimization/estimate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/estimate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee2e92b74a0101ba", "name": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:85)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:85` calls `POST /llm-cost-optimization/estimate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/estimate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78758b983a7a0f01", "name": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:96)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:96)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:96` calls `POST /llm-cost-optimization/estimate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/estimate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-197a7beff28341d2", "name": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:105)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:105` calls `POST /llm-cost-optimization/estimate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/estimate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ee637df347609d5", "name": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=5 (apps/api/src/__tests__/llm-cost-optimizati", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=5 (apps/api/src/__tests__/llm-cost-optimization.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:116` calls `GET /llm-cost-optimization/recommendations?complexityScore=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a40b331c34c6359", "name": "Dangling fetch: GET /llm-cost-optimization/recommendations (apps/api/src/__tests__/llm-cost-optimization.test.ts:123)", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations (apps/api/src/__tests__/llm-cost-optimization.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:123` calls `GET /llm-cost-optimization/recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9f22398cce1592c", "name": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=15 (apps/api/src/__tests__/llm-cost-optimizat", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=15 (apps/api/src/__tests__/llm-cost-optimization.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:128` calls `GET /llm-cost-optimization/recommendations?complexityScore=15` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-830babde1cbf13ab", "name": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=7&maxCostCents=1&minAccuracy=0.9 (apps/api/sr", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=7&maxCostCents=1&minAccuracy=0.9 (apps/api/src/__tests__/llm-cost-optimization.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:133` calls `GET /llm-cost-optimization/recommendations?complexityScore=7&maxCostCents=1&minAccuracy=0.9` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0225ff143eec8b95", "name": "Dangling fetch: GET /llm-cost-optimization/stats (apps/api/src/__tests__/llm-cost-optimization.test.ts:140)", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/stats (apps/api/src/__tests__/llm-cost-optimization.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:140` calls `GET /llm-cost-optimization/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/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-ba0668977f6de6a0", "name": "Dangling fetch: GET /llm-cost-optimization/stats?days=7 (apps/api/src/__tests__/llm-cost-optimization.test.ts:149)", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/stats?days=7 (apps/api/src/__tests__/llm-cost-optimization.test.ts:149)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:149` calls `GET /llm-cost-optimization/stats?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/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-fae848f322bf1add", "name": "Dangling fetch: GET /llm-cost-optimization/stats?days=999 (apps/api/src/__tests__/llm-cost-optimization.test.ts:156)", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/stats?days=999 (apps/api/src/__tests__/llm-cost-optimization.test.ts:156)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:156` calls `GET /llm-cost-optimization/stats?days=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/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-44e417a5a1aa3a5d", "name": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:163)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:163` calls `POST /llm-cost-optimization/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf693d916312daa4", "name": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:181)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:181` calls `POST /llm-cost-optimization/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af21c100709d5492", "name": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:190)", "shortDescription": {"text": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:190)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:190` calls `POST /llm-cost-optimization/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11a2a53b4da5d30a", "name": "Dangling fetch: GET /llm-cost-optimization/accuracy-baselines (apps/api/src/__tests__/llm-cost-optimization.test.ts:207)", "shortDescription": {"text": "Dangling fetch: GET /llm-cost-optimization/accuracy-baselines (apps/api/src/__tests__/llm-cost-optimization.test.ts:207)"}, "fullDescription": {"text": "`apps/api/src/__tests__/llm-cost-optimization.test.ts:207` calls `GET /llm-cost-optimization/accuracy-baselines` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/llm-cost-optimization/accuracy-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-3b805735aa70c503", "name": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:55` calls `GET /protected/echo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/echo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8b049d5ed076d80", "name": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:61` calls `GET /protected/echo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/echo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8df604586d01e693", "name": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:69` calls `GET /protected/echo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected/echo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93d06adaf8ebf7f7", "name": "Dangling fetch: GET /api/v1/glossary?workspaceId=ws-A (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=ws-A (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:107` calls `GET /api/v1/glossary?workspaceId=ws-A` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9254fff92d7828c", "name": "Dangling fetch: GET /api/v1/glossary?workspaceId=ws-A (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=ws-A (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:114` calls `GET /api/v1/glossary?workspaceId=ws-A` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36312baced46ad2d", "name": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:63)", "shortDescription": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-cost-audit.test.ts:63` calls `POST /admin/cost-audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/cost-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2cd01dd6a92d8b3", "name": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-cost-audit.test.ts:74` calls `POST /admin/cost-audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/cost-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb97941efae7c4e2", "name": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:85)", "shortDescription": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-cost-audit.test.ts:85` calls `POST /admin/cost-audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/cost-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-397db588947ea65e", "name": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:97)", "shortDescription": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-cost-audit.test.ts:97` calls `POST /admin/cost-audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/cost-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d80efb516853c451", "name": "Dangling fetch: GET /admin/cost-audit/top-workspaces?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/admin-cost-au", "shortDescription": {"text": "Dangling fetch: GET /admin/cost-audit/top-workspaces?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/admin-cost-audit.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-cost-audit.test.ts:111` calls `GET /admin/cost-audit/top-workspaces?from=2026-01-01&to=2026-06-30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/cost-audit/top-workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cb0b0f5d796c64f", "name": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:55)", "shortDescription": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dsr.test.ts:55` calls `POST /dsr/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dsr/request`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-537c982e002ff116", "name": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:66)", "shortDescription": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dsr.test.ts:66` calls `POST /dsr/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dsr/request`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be86bcb62177b72e", "name": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:75)", "shortDescription": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dsr.test.ts:75` calls `POST /dsr/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dsr/request`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f111ab485e173417", "name": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:84)", "shortDescription": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dsr.test.ts:84` calls `POST /dsr/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dsr/request`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72bf33b6b6920a43", "name": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dsr.test.ts:90` calls `POST /dsr/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dsr/request`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f456f3094bf010c5", "name": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:52)", "shortDescription": {"text": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:52` calls `POST /validation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ac163a00f9bc7ad", "name": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:70` calls `POST /validation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae61bec5f078a261", "name": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:79)", "shortDescription": {"text": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:79` calls `POST /validation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f2451cb03d2bc51", "name": "Dangling fetch: GET /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:93)", "shortDescription": {"text": "Dangling fetch: GET /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:93` calls `GET /validation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7567ed1dceca3ca", "name": "Dangling fetch: GET /validation/rules?entityType=deal (apps/api/src/__tests__/entity-validation.test.ts:102)", "shortDescription": {"text": "Dangling fetch: GET /validation/rules?entityType=deal (apps/api/src/__tests__/entity-validation.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:102` calls `GET /validation/rules?entityType=deal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-606e4afb5ce65d44", "name": "Dangling fetch: DELETE /validation/rules/rule-uuid (apps/api/src/__tests__/entity-validation.test.ts:112)", "shortDescription": {"text": "Dangling fetch: DELETE /validation/rules/rule-uuid (apps/api/src/__tests__/entity-validation.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:112` calls `DELETE /validation/rules/rule-uuid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/rules/rule-uuid`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11a3a3585f8f2c48", "name": "Dangling fetch: POST /validation/validate-entity (apps/api/src/__tests__/entity-validation.test.ts:125)", "shortDescription": {"text": "Dangling fetch: POST /validation/validate-entity (apps/api/src/__tests__/entity-validation.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:125` calls `POST /validation/validate-entity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/validate-entity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4691bd86ed07686", "name": "Dangling fetch: POST /validation/validate-entity (apps/api/src/__tests__/entity-validation.test.ts:144)", "shortDescription": {"text": "Dangling fetch: POST /validation/validate-entity (apps/api/src/__tests__/entity-validation.test.ts:144)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:144` calls `POST /validation/validate-entity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/validate-entity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d427e50dd15313b", "name": "Dangling fetch: GET /validation/failures (apps/api/src/__tests__/entity-validation.test.ts:158)", "shortDescription": {"text": "Dangling fetch: GET /validation/failures (apps/api/src/__tests__/entity-validation.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:158` calls `GET /validation/failures` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/failures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d3e993bc8ddcef9", "name": "Dangling fetch: GET /validation/failures?acknowledged=false (apps/api/src/__tests__/entity-validation.test.ts:167)", "shortDescription": {"text": "Dangling fetch: GET /validation/failures?acknowledged=false (apps/api/src/__tests__/entity-validation.test.ts:167)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:167` calls `GET /validation/failures?acknowledged=false` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/failures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc2e1498b6ed7229", "name": "Dangling fetch: GET /validation/failures?limit=999 (apps/api/src/__tests__/entity-validation.test.ts:172)", "shortDescription": {"text": "Dangling fetch: GET /validation/failures?limit=999 (apps/api/src/__tests__/entity-validation.test.ts:172)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:172` calls `GET /validation/failures?limit=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/failures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37ee286cd6b67081", "name": "Dangling fetch: POST /validation/failures/f-uuid/acknowledge (apps/api/src/__tests__/entity-validation.test.ts:182)", "shortDescription": {"text": "Dangling fetch: POST /validation/failures/f-uuid/acknowledge (apps/api/src/__tests__/entity-validation.test.ts:182)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:182` calls `POST /validation/failures/f-uuid/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/failures/f-uuid/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-630189e6391724ff", "name": "Dangling fetch: GET /validation/report (apps/api/src/__tests__/entity-validation.test.ts:197)", "shortDescription": {"text": "Dangling fetch: GET /validation/report (apps/api/src/__tests__/entity-validation.test.ts:197)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-validation.test.ts:197` calls `GET /validation/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/validation/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b504f8eaedf60864", "name": "Dangling fetch: GET /admin/embedding-config (apps/api/src/__tests__/admin-embedding.test.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /admin/embedding-config (apps/api/src/__tests__/admin-embedding.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:51` calls `GET /admin/embedding-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-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-3754872b7b01fe9b", "name": "Dangling fetch: GET /admin/embedding-config?workspaceId=ws-1 (apps/api/src/__tests__/admin-embedding.test.ts:57)", "shortDescription": {"text": "Dangling fetch: GET /admin/embedding-config?workspaceId=ws-1 (apps/api/src/__tests__/admin-embedding.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:57` calls `GET /admin/embedding-config?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-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-01d1cddd9b245157", "name": "Dangling fetch: GET /admin/embedding-config?workspaceId=ws-new (apps/api/src/__tests__/admin-embedding.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /admin/embedding-config?workspaceId=ws-new (apps/api/src/__tests__/admin-embedding.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:66` calls `GET /admin/embedding-config?workspaceId=ws-new` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-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-4b32c588b50dc85b", "name": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:81)", "shortDescription": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:81` calls `POST /admin/embedding-config/migrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-config/migrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79ded761d1f2b9ca", "name": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:91)", "shortDescription": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:91` calls `POST /admin/embedding-config/migrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-config/migrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e7afe6782074258", "name": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:101)", "shortDescription": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:101` calls `POST /admin/embedding-config/migrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-config/migrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ad42b953c90288b", "name": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:114)", "shortDescription": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:114` calls `POST /admin/embedding-config/migrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-config/migrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef9c0b0270ced34a", "name": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:124` calls `POST /admin/embedding-config/migrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-config/migrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2075066a22d5a940", "name": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:136)", "shortDescription": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:136)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-embedding.test.ts:136` calls `POST /admin/embedding-config/migrate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/embedding-config/migrate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3333947f35272a5d", "name": "Dangling fetch: GET /admin/dlq?workspaceId=ws-test (apps/api/src/__tests__/admin-dlq.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /admin/dlq?workspaceId=ws-test (apps/api/src/__tests__/admin-dlq.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:61` calls `GET /admin/dlq?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb80814a73b7c424", "name": "Dangling fetch: GET /admin/dlq (apps/api/src/__tests__/admin-dlq.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /admin/dlq (apps/api/src/__tests__/admin-dlq.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:75` calls `GET /admin/dlq` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-262a893e36838c57", "name": "Dangling fetch: GET /admin/dlq?limit=999 (apps/api/src/__tests__/admin-dlq.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /admin/dlq?limit=999 (apps/api/src/__tests__/admin-dlq.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:84` calls `GET /admin/dlq?limit=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a895bbedbf160ded", "name": "Dangling fetch: GET /admin/dlq (apps/api/src/__tests__/admin-dlq.test.ts:92)", "shortDescription": {"text": "Dangling fetch: GET /admin/dlq (apps/api/src/__tests__/admin-dlq.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:92` calls `GET /admin/dlq` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca47bee11219d374", "name": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:104)", "shortDescription": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:104` calls `POST /admin/dlq/${FAKE_ENTRY.id}/retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq/<p>/retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-304a136156996d85", "name": "Dangling fetch: POST /admin/dlq/nonexistent-id/retry (apps/api/src/__tests__/admin-dlq.test.ts:120)", "shortDescription": {"text": "Dangling fetch: POST /admin/dlq/nonexistent-id/retry (apps/api/src/__tests__/admin-dlq.test.ts:120)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:120` calls `POST /admin/dlq/nonexistent-id/retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq/nonexistent-id/retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f804976bc71e072", "name": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:133` calls `POST /admin/dlq/${FAKE_ENTRY.id}/retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq/<p>/retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0afe652bbd98f116", "name": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:146` calls `POST /admin/dlq/${FAKE_ENTRY.id}/retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq/<p>/retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be0cbd4f03120538", "name": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:159)", "shortDescription": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:159)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-dlq.test.ts:159` calls `POST /admin/dlq/${FAKE_ENTRY.id}/retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/dlq/<p>/retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34cbd568d6292ce1", "name": "Dangling fetch: GET /entities/hubspot:contact:1/lineage (apps/api/src/__tests__/entity-lineage.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage (apps/api/src/__tests__/entity-lineage.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-lineage.test.ts:48` calls `GET /entities/hubspot:contact:1/lineage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7d253c25c99b3ff", "name": "Dangling fetch: GET /entities/hubspot:contact:unknown/lineage?workspaceId=ws-1 (apps/api/src/__tests__/entity-lineage.te", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:unknown/lineage?workspaceId=ws-1 (apps/api/src/__tests__/entity-lineage.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-lineage.test.ts:55` calls `GET /entities/hubspot:contact:unknown/lineage?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>/<p>/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d349df3bcaf818d", "name": "Dangling fetch: GET /entities/hubspot:contact:1/lineage?workspaceId=ws-1 (apps/api/src/__tests__/entity-lineage.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage?workspaceId=ws-1 (apps/api/src/__tests__/entity-lineage.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-lineage.test.ts:64` calls `GET /entities/hubspot:contact:1/lineage?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b317c035e261836", "name": "Dangling fetch: GET /entities/my:entity:42/lineage?workspaceId=ws-x (apps/api/src/__tests__/entity-lineage.test.ts:76)", "shortDescription": {"text": "Dangling fetch: GET /entities/my:entity:42/lineage?workspaceId=ws-x (apps/api/src/__tests__/entity-lineage.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-lineage.test.ts:76` calls `GET /entities/my:entity:42/lineage?workspaceId=ws-x` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/my/<p>:42/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-967e5557de49b294", "name": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:33)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:33)"}, "fullDescription": {"text": "`apps/api/src/__tests__/osi-interchange.test.ts:33` calls `POST /api/v1/workspace/import/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/import/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b03c96f703fb63a", "name": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:46)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/osi-interchange.test.ts:46` calls `POST /api/v1/workspace/import/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/import/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4af8aa65f51fb6b5", "name": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:58)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/osi-interchange.test.ts:58` calls `POST /api/v1/workspace/import/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/import/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a5d85021d5d8450", "name": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:69)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/osi-interchange.test.ts:69` calls `POST /api/v1/workspace/import/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/import/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16ce056ef7bfa48a", "name": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/osi-interchange.test.ts:90` calls `POST /api/v1/workspace/import/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/import/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e051d619873f7e07", "name": "Dangling fetch: GET /api/v1/workspace/export/osi/info (apps/api/src/__tests__/osi-interchange.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/export/osi/info (apps/api/src/__tests__/osi-interchange.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/osi-interchange.test.ts:106` calls `GET /api/v1/workspace/export/osi/info` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/export/osi/info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9f8b301616833b45", "name": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:27)", "shortDescription": {"text": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:27)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:27` calls `POST /metrics/computed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a39c1c3daac74d62", "name": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:40)", "shortDescription": {"text": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:40)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:40` calls `POST /metrics/computed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bfc8f4c012983da", "name": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:52)", "shortDescription": {"text": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:52` calls `POST /metrics/computed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d89385eeea3d7fc", "name": "Dangling fetch: GET /metrics/computed?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:66` calls `GET /metrics/computed?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1ab25ee4c7ff4de", "name": "Dangling fetch: GET /metrics/computed?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:82` calls `GET /metrics/computed?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff7167f8ae14f911", "name": "Dangling fetch: GET /metrics/computed/non-existent/value?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed/non-existent/value?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:94` calls `GET /metrics/computed/non-existent/value?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed/non-existent/value`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16c8d4a2e8251b5d", "name": "Dangling fetch: GET /metrics/computed/ws-1:arr/value?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:1", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed/ws-1:arr/value?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:104` calls `GET /metrics/computed/ws-1:arr/value?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed/ws-1/<p>/value`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a630e6dc6bee231", "name": "Dangling fetch: GET /metrics/computed/m-1/value (apps/api/src/__tests__/computed-metrics.test.ts:113)", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed/m-1/value (apps/api/src/__tests__/computed-metrics.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:113` calls `GET /metrics/computed/m-1/value` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed/m-1/value`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-669709e6cf739879", "name": "Dangling fetch: GET /metrics/computed/ws-1:arr/explain (apps/api/src/__tests__/computed-metrics.test.ts:123)", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed/ws-1:arr/explain (apps/api/src/__tests__/computed-metrics.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:123` calls `GET /metrics/computed/ws-1:arr/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed/ws-1/<p>/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61146f99cf00a7d3", "name": "Dangling fetch: GET /metrics/computed/ws-1:arr/explain (apps/api/src/__tests__/computed-metrics.test.ts:136)", "shortDescription": {"text": "Dangling fetch: GET /metrics/computed/ws-1:arr/explain (apps/api/src/__tests__/computed-metrics.test.ts:136)"}, "fullDescription": {"text": "`apps/api/src/__tests__/computed-metrics.test.ts:136` calls `GET /metrics/computed/ws-1:arr/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/metrics/computed/ws-1/<p>/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1448203564274fd4", "name": "Dangling fetch: GET /api-keys (apps/api/src/__tests__/api-key-management.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /api-keys (apps/api/src/__tests__/api-key-management.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/api-key-management.test.ts:55` calls `GET /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8fc620fcb0e2de9", "name": "Dangling fetch: GET /api-keys (apps/api/src/__tests__/api-key-management.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /api-keys (apps/api/src/__tests__/api-key-management.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/api-key-management.test.ts:62` calls `GET /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5db58e4035ccc087", "name": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:71)", "shortDescription": {"text": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:71)"}, "fullDescription": {"text": "`apps/api/src/__tests__/api-key-management.test.ts:71` calls `POST /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea9d18fe4c2b8a0e", "name": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:80)", "shortDescription": {"text": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/api-key-management.test.ts:80` calls `POST /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a734b7610e989b43", "name": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:89)", "shortDescription": {"text": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/api-key-management.test.ts:89` calls `POST /api-keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/api-keys`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c34c9438f7440e0d", "name": "Dangling fetch: GET /api/v1/metrics (apps/api/src/__tests__/metrics.test.ts:54)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics (apps/api/src/__tests__/metrics.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:54` calls `GET /api/v1/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/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-72219ae0a7a12d02", "name": "Dangling fetch: GET /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:62` calls `GET /api/v1/metrics?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/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-afba0b8ab953483e", "name": "Dangling fetch: GET /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:73)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:73` calls `GET /api/v1/metrics?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/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-1ea384e70e38a1cd", "name": "Dangling fetch: POST /api/v1/metrics (apps/api/src/__tests__/metrics.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics (apps/api/src/__tests__/metrics.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:83` calls `POST /api/v1/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/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-5fca8a560ebc849a", "name": "Dangling fetch: POST /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:94)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:94` calls `POST /api/v1/metrics?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/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-7bc58104c8c7bcde", "name": "Dangling fetch: POST /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:106` calls `POST /api/v1/metrics?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/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-b2d8348320f82164", "name": "Dangling fetch: DELETE /api/v1/metrics/monthly_revenue (apps/api/src/__tests__/metrics.test.ts:122)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/metrics/monthly_revenue (apps/api/src/__tests__/metrics.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:122` calls `DELETE /api/v1/metrics/monthly_revenue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/monthly_revenue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48f5cc4a6b83fad3", "name": "Dangling fetch: DELETE /api/v1/metrics/nonexistent?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:130)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/metrics/nonexistent?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:130` calls `DELETE /api/v1/metrics/nonexistent?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edbeb47e3b8afa05", "name": "Dangling fetch: DELETE /api/v1/metrics/monthly_revenue?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/metrics/monthly_revenue?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:138` calls `DELETE /api/v1/metrics/monthly_revenue?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/monthly_revenue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1864a21a3378f16", "name": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:150)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:150` calls `POST /api/v1/metrics/metric-1/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/metric-1/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06130af314b940d9", "name": "Dangling fetch: POST /api/v1/metrics/nonexistent/evaluate (apps/api/src/__tests__/metrics.test.ts:161)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/nonexistent/evaluate (apps/api/src/__tests__/metrics.test.ts:161)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:161` calls `POST /api/v1/metrics/nonexistent/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/nonexistent/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-255ceea56679822a", "name": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:177)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:177)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:177` calls `POST /api/v1/metrics/metric-1/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/metric-1/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d8cfa9d73c22499", "name": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:194)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:194)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:194` calls `POST /api/v1/metrics/metric-1/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/metric-1/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd4126e8c96230ec", "name": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:207)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:207)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:207` calls `POST /api/v1/metrics/validate-formula` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/validate-formula`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5020c36439d30a98", "name": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:218)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:218)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:218` calls `POST /api/v1/metrics/validate-formula` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/validate-formula`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ac85c39b48220a0", "name": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:231)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:231)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics.test.ts:231` calls `POST /api/v1/metrics/validate-formula` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/validate-formula`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6d2d80062d1e7fb", "name": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-engine.test.ts:31)", "shortDescription": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-engine.test.ts:31)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:31` calls `GET /enrichments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2501ae16527811e9", "name": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-engine.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-engine.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:42` calls `GET /enrichments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92bc5df473d9dc33", "name": "Dangling fetch: GET /enrichments/sources/company-enricher (apps/api/src/__tests__/enrichment-engine.test.ts:52)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/sources/company-enricher (apps/api/src/__tests__/enrichment-engine.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:52` calls `GET /enrichments/sources/company-enricher` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/sources/company-enricher`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c269933b354d4b07", "name": "Dangling fetch: GET /enrichments/sources/nonexistent (apps/api/src/__tests__/enrichment-engine.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/sources/nonexistent (apps/api/src/__tests__/enrichment-engine.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:60` calls `GET /enrichments/sources/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/sources/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbcab26ed34d2aaa", "name": "Dangling fetch: POST /enrichments/configure/company-enricher (apps/api/src/__tests__/enrichment-engine.test.ts:69)", "shortDescription": {"text": "Dangling fetch: POST /enrichments/configure/company-enricher (apps/api/src/__tests__/enrichment-engine.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:69` calls `POST /enrichments/configure/company-enricher` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/configure/company-enricher`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ec1d0c1572ad099", "name": "Dangling fetch: POST /enrichments/configure/x (apps/api/src/__tests__/enrichment-engine.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /enrichments/configure/x (apps/api/src/__tests__/enrichment-engine.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:83` calls `POST /enrichments/configure/x` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/configure/x`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-920f5104a1734f07", "name": "Dangling fetch: GET /enrichments/entities/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:96)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/entities/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:96)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:96` calls `GET /enrichments/entities/contact:001` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/entities/contact:001`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f30a4a2410f74b69", "name": "Dangling fetch: GET /enrichments/entities/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/entities/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:106` calls `GET /enrichments/entities/contact:001` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/entities/contact:001`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3949cd8eb2c619d3", "name": "Dangling fetch: POST /enrichments/refresh/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /enrichments/refresh/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:119` calls `POST /enrichments/refresh/contact:001` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/refresh/contact:001`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f201a81d0d364efa", "name": "Dangling fetch: POST /enrichments/refresh/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:125)", "shortDescription": {"text": "Dangling fetch: POST /enrichments/refresh/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:125` calls `POST /enrichments/refresh/contact:001` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/refresh/contact:001`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f690490657abbfc", "name": "Dangling fetch: GET /enrichments/coverage (apps/api/src/__tests__/enrichment-engine.test.ts:138)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/coverage (apps/api/src/__tests__/enrichment-engine.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:138` calls `GET /enrichments/coverage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/coverage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-32fc6c10ff0702fc", "name": "Dangling fetch: GET /enrichments/coverage (apps/api/src/__tests__/enrichment-engine.test.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /enrichments/coverage (apps/api/src/__tests__/enrichment-engine.test.ts:148)"}, "fullDescription": {"text": "`apps/api/src/__tests__/enrichment-engine.test.ts:148` calls `GET /enrichments/coverage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/enrichments/coverage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a68442b2ec09660b", "name": "Dangling fetch: GET /api/v1/connectors/types (apps/api/src/__tests__/connectors.test.ts:89)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/types (apps/api/src/__tests__/connectors.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:89` calls `GET /api/v1/connectors/types` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/types`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c73772c56b4f6394", "name": "Dangling fetch: GET /api/v1/connectors/types/hubspot (apps/api/src/__tests__/connectors.test.ts:101)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/types/hubspot (apps/api/src/__tests__/connectors.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:101` calls `GET /api/v1/connectors/types/hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/types/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ad02281e35b3e9f9", "name": "Dangling fetch: GET /api/v1/connectors/types/unknown (apps/api/src/__tests__/connectors.test.ts:110)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/types/unknown (apps/api/src/__tests__/connectors.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:110` calls `GET /api/v1/connectors/types/unknown` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/types/unknown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b38f10d76f2bff7", "name": "Dangling fetch: GET /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:122` calls `GET /api/v1/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-359d7979f23d2e5a", "name": "Dangling fetch: GET /api/v1/connectors?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:130)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:130` calls `GET /api/v1/connectors?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4982eef5c230070", "name": "Dangling fetch: GET /api/v1/connectors?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:141` calls `GET /api/v1/connectors?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27e12f3bbe8c0c4c", "name": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:151)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:151)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:151` calls `POST /api/v1/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b74bdd258089787", "name": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:164)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:164)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:164` calls `POST /api/v1/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99a25c7614a8692f", "name": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:179)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:179)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:179` calls `POST /api/v1/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fbcd9bf9526aed84", "name": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:195)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:195)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:195` calls `POST /api/v1/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3dd4ad3774557b7", "name": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:212)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:212)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:212` calls `POST /api/v1/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bce84150ec7c7fe6", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:226)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:226` calls `GET /api/v1/connectors/${INSTANCE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-24e4a03adf6ea264", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:234)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:234` calls `GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-983741c66e524507", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:244)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:244` calls `GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-c06d03bf22f037d6", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:254)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:254)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:254` calls `PUT /api/v1/connectors/${INSTANCE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-3a8133de91d82695", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.t", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:267)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:267` calls `PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-7f89615ce76fde35", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.t", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:281)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:281` calls `PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-5d7b807a0037b6ff", "name": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:295)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:295)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:295` calls `DELETE /api/v1/connectors/${INSTANCE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-566d1adc3a462761", "name": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.tes", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:303)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:303` calls `DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-da35d60f624e6020", "name": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.tes", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:313)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:313` calls `DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<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-e63aa89d31834fad", "name": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync (apps/api/src/__tests__/connectors.test.ts:323)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync (apps/api/src/__tests__/connectors.test.ts:323)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:323` calls `POST /api/v1/connectors/${INSTANCE_ID}/sync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf7c88317fbfcaf8", "name": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:331)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:331` calls `POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1cbf1c7a496a5bf", "name": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:340)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:340` calls `POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/sync`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-524dcaf9eb92e41d", "name": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test (apps/api/src/__tests__/connectors.test.ts:353)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test (apps/api/src/__tests__/connectors.test.ts:353)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:353` calls `POST /api/v1/connectors/${INSTANCE_ID}/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/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-635ea05d84cd95f2", "name": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:361)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:361` calls `POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/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-5ebf83f1759e5328", "name": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:371)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:371` calls `POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/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-12b5931a2277921a", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule (apps/api/src/__tests__/connectors.test.ts:381)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule (apps/api/src/__tests__/connectors.test.ts:381)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:381` calls `GET /api/v1/connectors/${INSTANCE_ID}/schedule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b02c879360d446a2", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:387)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:387` calls `GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f813da8626b4b222", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:396)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:396` calls `GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-694563144bd2a1dd", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:406)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:406` calls `GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02d99974aea81935", "name": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:414)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:414` calls `GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17b6241d263b7747", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule (apps/api/src/__tests__/connectors.test.ts:424)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule (apps/api/src/__tests__/connectors.test.ts:424)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:424` calls `PUT /api/v1/connectors/${INSTANCE_ID}/schedule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e064d0b460fd75a6", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:434)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:434` calls `PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6da4fd8eb9f8356e", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:444)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:444` calls `PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1663d2b0e5791ab", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:458)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:458` calls `PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7019e28c16026643", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:473)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:473` calls `PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f6bd4820193cd3a", "name": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connecto", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:488)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connectors.test.ts:488` calls `PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/<p>/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f70f19cfac2f0b94", "name": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:74)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:74` calls `GET /cost-optimizer/recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b18b007cc95bf6a1", "name": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:82` calls `GET /cost-optimizer/recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8f20e17db935f3b", "name": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=14 (apps/api/src/__tests__/cost-optimizer.test.ts:87)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=14 (apps/api/src/__tests__/cost-optimizer.test.ts:87)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:87` calls `GET /cost-optimizer/recommendations?windowDays=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff5bb0929f40ac0d", "name": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=-1 (apps/api/src/__tests__/cost-optimizer.test.ts:92)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=-1 (apps/api/src/__tests__/cost-optimizer.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:92` calls `GET /cost-optimizer/recommendations?windowDays=-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be5500aed6e90184", "name": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=400 (apps/api/src/__tests__/cost-optimizer.test.ts:97)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=400 (apps/api/src/__tests__/cost-optimizer.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:97` calls `GET /cost-optimizer/recommendations?windowDays=400` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a8adef538094713", "name": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:103)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:103` calls `GET /cost-optimizer/recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77938f7866756941", "name": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:109` calls `GET /cost-optimizer/recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-205b920a436f1df5", "name": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:116)", "shortDescription": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:116` calls `POST /cost-optimizer/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb13a024dadba744", "name": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:128)", "shortDescription": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:128` calls `POST /cost-optimizer/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ce384de4fae4509", "name": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:133` calls `POST /cost-optimizer/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ca4faafcd513bdf", "name": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:142)", "shortDescription": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:142)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:142` calls `POST /cost-optimizer/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a1293b956108b24", "name": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:152)", "shortDescription": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:152)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cost-optimizer.test.ts:152` calls `POST /cost-optimizer/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cost-optimizer/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-940eb495fea7bef8", "name": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:44)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:44)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:44` calls `POST /api/v1/nlp-config/parse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/parse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b01c1c39483c1c7", "name": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:54)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:54` calls `POST /api/v1/nlp-config/parse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/parse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfe3096219d8c00d", "name": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:66)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:66` calls `POST /api/v1/nlp-config/parse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/parse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b775cbfaff0499dd", "name": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:81)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:81` calls `POST /api/v1/nlp-config/parse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/parse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17af29b5cc9c6b7d", "name": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:98)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:98` calls `POST /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9aadc6a8792f0be", "name": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:110` calls `POST /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e39826e1bc58b256", "name": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:122)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:122` calls `POST /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb70c3904c11dc17", "name": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:138)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:138` calls `GET /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43d4c2efe46bcaf6", "name": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:146)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:146` calls `GET /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ee940ccea88d476", "name": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:157)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:157)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:157` calls `GET /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ef4b16d70aa5ec7", "name": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:167)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:167)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:167` calls `POST /api/v1/nlp-config/intents/intent-1/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/intent-1/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8fe1cec7f26deaa6", "name": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:177)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:177)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:177` calls `POST /api/v1/nlp-config/intents/intent-1/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/intent-1/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8535dbe05dfb1d6b", "name": "Dangling fetch: POST /api/v1/nlp-config/intents/nonexistent/apply (apps/api/src/__tests__/nlp-config.test.ts:189)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/nonexistent/apply (apps/api/src/__tests__/nlp-config.test.ts:189)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:189` calls `POST /api/v1/nlp-config/intents/nonexistent/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/nonexistent/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f8024e423e5ab09", "name": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:202)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:202)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:202` calls `POST /api/v1/nlp-config/intents/intent-1/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/intent-1/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ef67e2e47b2faa0", "name": "Dangling fetch: DELETE /api/v1/nlp-config/intents/intent-1 (apps/api/src/__tests__/nlp-config.test.ts:218)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/intent-1 (apps/api/src/__tests__/nlp-config.test.ts:218)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:218` calls `DELETE /api/v1/nlp-config/intents/intent-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/intent-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7e66808b140f7c5", "name": "Dangling fetch: DELETE /api/v1/nlp-config/intents/nonexistent (apps/api/src/__tests__/nlp-config.test.ts:226)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/nonexistent (apps/api/src/__tests__/nlp-config.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:226` calls `DELETE /api/v1/nlp-config/intents/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76ad307c6a99e7d0", "name": "Dangling fetch: DELETE /api/v1/nlp-config/intents/intent-1 (apps/api/src/__tests__/nlp-config.test.ts:237)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/intent-1 (apps/api/src/__tests__/nlp-config.test.ts:237)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nlp-config.test.ts:237` calls `DELETE /api/v1/nlp-config/intents/intent-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/nlp-config/intents/intent-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8a66d73230c09f9", "name": "Dangling fetch: GET /workflows (apps/api/src/__tests__/workflows.test.ts:53)", "shortDescription": {"text": "Dangling fetch: GET /workflows (apps/api/src/__tests__/workflows.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:53` calls `GET /workflows` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68f07f13299c76be", "name": "Dangling fetch: GET /workflows?category=sales (apps/api/src/__tests__/workflows.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /workflows?category=sales (apps/api/src/__tests__/workflows.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:60` calls `GET /workflows?category=sales` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5f06fe1c0488c8a", "name": "Dangling fetch: GET /workflows?category=unknown-category (apps/api/src/__tests__/workflows.test.ts:67)", "shortDescription": {"text": "Dangling fetch: GET /workflows?category=unknown-category (apps/api/src/__tests__/workflows.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:67` calls `GET /workflows?category=unknown-category` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20142cfb4b16581d", "name": "Dangling fetch: GET /workflows/non-existent (apps/api/src/__tests__/workflows.test.ts:78)", "shortDescription": {"text": "Dangling fetch: GET /workflows/non-existent (apps/api/src/__tests__/workflows.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:78` calls `GET /workflows/non-existent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/non-existent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c78e79c46d2dac5", "name": "Dangling fetch: GET /workflows/sales-pipeline-review (apps/api/src/__tests__/workflows.test.ts:85)", "shortDescription": {"text": "Dangling fetch: GET /workflows/sales-pipeline-review (apps/api/src/__tests__/workflows.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:85` calls `GET /workflows/sales-pipeline-review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sales-pipeline-review`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89ee63a4875ac003", "name": "Dangling fetch: GET /workflows/financial-forecast (apps/api/src/__tests__/workflows.test.ts:92)", "shortDescription": {"text": "Dangling fetch: GET /workflows/financial-forecast (apps/api/src/__tests__/workflows.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:92` calls `GET /workflows/financial-forecast` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/financial-forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de78b611a9a5c562", "name": "Dangling fetch: POST /workflows/ghost/execute (apps/api/src/__tests__/workflows.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /workflows/ghost/execute (apps/api/src/__tests__/workflows.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:103` calls `POST /workflows/ghost/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/ghost/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-308cf36b4096cb44", "name": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:112)", "shortDescription": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:112` calls `POST /workflows/sales-pipeline-review/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sales-pipeline-review/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d9daf5988be21c8", "name": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:121)", "shortDescription": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:121` calls `POST /workflows/sales-pipeline-review/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sales-pipeline-review/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-544602375c0ce3d5", "name": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:130)", "shortDescription": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:130` calls `POST /workflows/sales-pipeline-review/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sales-pipeline-review/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e2d4fcd6bd48a9b", "name": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:141)", "shortDescription": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:141` calls `POST /workflows/sales-pipeline-review/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sales-pipeline-review/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cf734759c153af7", "name": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:153)", "shortDescription": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:153` calls `POST /workflows/sales-pipeline-review/execute` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sales-pipeline-review/execute`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63f35feb8cb5ce2c", "name": "Dangling fetch: GET /workflows/sessions/u-1 (apps/api/src/__tests__/workflows.test.ts:170)", "shortDescription": {"text": "Dangling fetch: GET /workflows/sessions/u-1 (apps/api/src/__tests__/workflows.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:170` calls `GET /workflows/sessions/u-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sessions/u-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-081fe85ad29c474e", "name": "Dangling fetch: GET /workflows/sessions/u-1?workspaceId=ws-1 (apps/api/src/__tests__/workflows.test.ts:183)", "shortDescription": {"text": "Dangling fetch: GET /workflows/sessions/u-1?workspaceId=ws-1 (apps/api/src/__tests__/workflows.test.ts:183)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:183` calls `GET /workflows/sessions/u-1?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sessions/u-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e81bed12c588a4cc", "name": "Dangling fetch: GET /workflows/sessions/u-1?workspaceId=ws-1&limit=5 (apps/api/src/__tests__/workflows.test.ts:191)", "shortDescription": {"text": "Dangling fetch: GET /workflows/sessions/u-1?workspaceId=ws-1&limit=5 (apps/api/src/__tests__/workflows.test.ts:191)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:191` calls `GET /workflows/sessions/u-1?workspaceId=ws-1&limit=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sessions/u-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-004fd99a4a2d310a", "name": "Dangling fetch: GET /workflows/sessions/non-existent/result (apps/api/src/__tests__/workflows.test.ts:202)", "shortDescription": {"text": "Dangling fetch: GET /workflows/sessions/non-existent/result (apps/api/src/__tests__/workflows.test.ts:202)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:202` calls `GET /workflows/sessions/non-existent/result` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sessions/non-existent/result`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e5f51b08b1601ea", "name": "Dangling fetch: GET /workflows/sessions/s-1/result (apps/api/src/__tests__/workflows.test.ts:216)", "shortDescription": {"text": "Dangling fetch: GET /workflows/sessions/s-1/result (apps/api/src/__tests__/workflows.test.ts:216)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflows.test.ts:216` calls `GET /workflows/sessions/s-1/result` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workflows/sessions/s-1/result`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-caa8bebdd012f972", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:18)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:18)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:18` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ca1101c2f473c7b", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:24)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:24)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:24` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18ce1ba1a1fc8a96", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:32)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:32)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:32` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-811195b5116f2fb3", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:40)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:40)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:40` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9f41bc4299abdf4", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:48` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c3fe0af067b5dbd7", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:56` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1e32e9f06ce2baf", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:64)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:64` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22eaad3915802832", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:80)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:80` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a25faca845849cb8", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:91)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:91` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fab4c9c1a31c38f", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:98` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cee0061ea0b17867", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:106` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99260a74ab386813", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:114)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:114` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-deed44f8e2bebb21", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:122` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3f5c5af08785cee", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:130)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:130` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d58b8c80f77d5955", "name": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:138)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-resource-discovery.test.ts:138` calls `GET /api/v1/mcp/resources` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff11c7a1507ed059", "name": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:49)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:49` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b147a87865c0b04", "name": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:67)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:67` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41220da88fc486c5", "name": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:80)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:80` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7888de4c7f1e0f57", "name": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:92)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:92` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87cd4eecda2e567e", "name": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:106` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-051e563aa5891d1d", "name": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:119` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43bdf83e64463c15", "name": "Dangling fetch: GET /api/v1/entities/import/jobs (apps/api/src/__tests__/bulk-operations.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/import/jobs (apps/api/src/__tests__/bulk-operations.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:134` calls `GET /api/v1/entities/import/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-600944a3e7af64bd", "name": "Dangling fetch: GET /api/v1/entities/import/jobs/nonexistent (apps/api/src/__tests__/bulk-operations.test.ts:147)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/import/jobs/nonexistent (apps/api/src/__tests__/bulk-operations.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:147` calls `GET /api/v1/entities/import/jobs/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import/jobs/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38e067dcdde1b6b8", "name": "Dangling fetch: GET /api/v1/entities/import/jobs/job1 (apps/api/src/__tests__/bulk-operations.test.ts:158)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/import/jobs/job1 (apps/api/src/__tests__/bulk-operations.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:158` calls `GET /api/v1/entities/import/jobs/job1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/import/jobs/job1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25996e5a2643bfea", "name": "Dangling fetch: GET /api/v1/entities/export (apps/api/src/__tests__/bulk-operations.test.ts:181)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/export (apps/api/src/__tests__/bulk-operations.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:181` calls `GET /api/v1/entities/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9bf3b391b0148560", "name": "Dangling fetch: GET /api/v1/entities/export?format=csv (apps/api/src/__tests__/bulk-operations.test.ts:204)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/export?format=csv (apps/api/src/__tests__/bulk-operations.test.ts:204)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:204` calls `GET /api/v1/entities/export?format=csv` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-786776705f167aa5", "name": "Dangling fetch: GET /api/v1/entities/export (apps/api/src/__tests__/bulk-operations.test.ts:217)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/export (apps/api/src/__tests__/bulk-operations.test.ts:217)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:217` calls `GET /api/v1/entities/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34ca4c7a353815b9", "name": "Dangling fetch: GET /api/v1/entities/export?format=xml (apps/api/src/__tests__/bulk-operations.test.ts:226)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/export?format=xml (apps/api/src/__tests__/bulk-operations.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/bulk-operations.test.ts:226` calls `GET /api/v1/entities/export?format=xml` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7be54d4e4bb1374", "name": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:49)", "shortDescription": {"text": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:49` calls `GET /cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-cbc525dfe29ba43b", "name": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:57)", "shortDescription": {"text": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:57` calls `GET /cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-7247835cd0438c8e", "name": "Dangling fetch: DELETE /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:65)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:65)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:65` calls `DELETE /cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-af474cc22fb2a9a7", "name": "Dangling fetch: DELETE /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:73)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:73` calls `DELETE /cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-b562527e5c51cbda", "name": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:81)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:81` calls `DELETE /cache/workspace/ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/workspace/ws-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-445cc11395e0da3c", "name": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:88)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:88` calls `DELETE /cache/workspace/ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/workspace/ws-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12ce53bf8248c842", "name": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:94)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-stats.test.ts:94` calls `DELETE /cache/workspace/ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/workspace/ws-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9b422f517941daf", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters (apps/api/src/__tests__/dedup-admin.test.ts:54)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters (apps/api/src/__tests__/dedup-admin.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:54` calls `GET /api/v1/admin/dedup/clusters` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12f1ce04d4f6b347", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters?entityType=contact (apps/api/src/__tests__/dedup-admin.test.ts:64)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters?entityType=contact (apps/api/src/__tests__/dedup-admin.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:64` calls `GET /api/v1/admin/dedup/clusters?entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b4993cbca4dac54", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters (apps/api/src/__tests__/dedup-admin.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters (apps/api/src/__tests__/dedup-admin.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:84` calls `GET /api/v1/admin/dedup/clusters` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-124006ff0b8b3077", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters/cl1/members (apps/api/src/__tests__/dedup-admin.test.ts:99)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters/cl1/members (apps/api/src/__tests__/dedup-admin.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:99` calls `GET /api/v1/admin/dedup/clusters/cl1/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/clusters/cl1/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4e76e7147a8cc74", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters/unknown-id/members (apps/api/src/__tests__/dedup-admin.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters/unknown-id/members (apps/api/src/__tests__/dedup-admin.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:109` calls `GET /api/v1/admin/dedup/clusters/unknown-id/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/clusters/unknown-id/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0d92b2026c42027", "name": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:124` calls `POST /api/v1/admin/dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-897d14014ffe7ad7", "name": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:135)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:135)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:135` calls `POST /api/v1/admin/dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26b9171633c52ebd", "name": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:146` calls `POST /api/v1/admin/dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6fc2b40664d0dde6", "name": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:167)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:167)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:167` calls `POST /api/v1/admin/dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2943ad7908df4369", "name": "Dangling fetch: GET /api/v1/admin/dedup/entities/e1/dedup-status (apps/api/src/__tests__/dedup-admin.test.ts:186)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/entities/e1/dedup-status (apps/api/src/__tests__/dedup-admin.test.ts:186)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:186` calls `GET /api/v1/admin/dedup/entities/e1/dedup-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/entities/e1/dedup-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-0a8726f9e6438658", "name": "Dangling fetch: GET /api/v1/admin/dedup/entities/unknown-entity/dedup-status (apps/api/src/__tests__/dedup-admin.test.ts", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/entities/unknown-entity/dedup-status (apps/api/src/__tests__/dedup-admin.test.ts:196)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-admin.test.ts:196` calls `GET /api/v1/admin/dedup/entities/unknown-entity/dedup-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/dedup/entities/unknown-entity/dedup-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-6dbbe046c3de2e5a", "name": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/analytics.test.ts:69` calls `GET /api/v1/analytics/breakdown?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/analytics/breakdown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fd21e17dc061f79", "name": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:81)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/analytics.test.ts:81` calls `GET /api/v1/analytics/breakdown?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/analytics/breakdown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b143030d9af181e3", "name": "Dangling fetch: GET /api/v1/analytics/breakdown (apps/api/src/__tests__/analytics.test.ts:100)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown (apps/api/src/__tests__/analytics.test.ts:100)"}, "fullDescription": {"text": "`apps/api/src/__tests__/analytics.test.ts:100` calls `GET /api/v1/analytics/breakdown` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/analytics/breakdown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5496a8e2a1efea5f", "name": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:114)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/analytics.test.ts:114` calls `GET /api/v1/analytics/breakdown?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/analytics/breakdown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e5fb99e78c0f75b", "name": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/analytics.test.ts:122` calls `GET /api/v1/analytics/breakdown?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/analytics/breakdown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b3129b2161935b3", "name": "Dangling fetch: GET /search-experiments/exp-1/results (apps/api/src/__tests__/admin-query-analytics.test.ts:217)", "shortDescription": {"text": "Dangling fetch: GET /search-experiments/exp-1/results (apps/api/src/__tests__/admin-query-analytics.test.ts:217)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:217` calls `GET /search-experiments/exp-1/results` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/exp-1/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-d5da678b1b2b07ee", "name": "Dangling fetch: GET /search-experiments/exp-404/results (apps/api/src/__tests__/admin-query-analytics.test.ts:226)", "shortDescription": {"text": "Dangling fetch: GET /search-experiments/exp-404/results (apps/api/src/__tests__/admin-query-analytics.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:226` calls `GET /search-experiments/exp-404/results` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/exp-404/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-26bc223caf53f2da", "name": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:236)", "shortDescription": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:236)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:236` calls `PUT /search-experiments/exp-1/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/exp-1/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b4bac33a0feb005", "name": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:248)", "shortDescription": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:248)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:248` calls `PUT /search-experiments/exp-1/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/exp-1/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ea452b4774c79cd", "name": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:258)", "shortDescription": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:258)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:258` calls `PUT /search-experiments/exp-1/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/exp-1/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-503c61a0794f9a95", "name": "Dangling fetch: PUT /search-experiments/bad-id/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:269)", "shortDescription": {"text": "Dangling fetch: PUT /search-experiments/bad-id/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:269)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:269` calls `PUT /search-experiments/bad-id/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/bad-id/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-906d879c7485c9b0", "name": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:280)", "shortDescription": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:280)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-query-analytics.test.ts:280` calls `PUT /search-experiments/exp-1/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/search-experiments/exp-1/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fbb7336dc9844659", "name": "Dangling fetch: GET /index/optimize?workspaceId=ws-1 (apps/api/src/__tests__/index-optimization.test.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /index/optimize?workspaceId=ws-1 (apps/api/src/__tests__/index-optimization.test.ts:43)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-optimization.test.ts:43` calls `GET /index/optimize?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1f01ca5fa85175e", "name": "Dangling fetch: GET /index/optimize (apps/api/src/__tests__/index-optimization.test.ts:50)", "shortDescription": {"text": "Dangling fetch: GET /index/optimize (apps/api/src/__tests__/index-optimization.test.ts:50)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-optimization.test.ts:50` calls `GET /index/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b27347e6f45d82b3", "name": "Dangling fetch: GET /index/optimize?workspaceId=ws-1&lookbackDays=14 (apps/api/src/__tests__/index-optimization.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /index/optimize?workspaceId=ws-1&lookbackDays=14 (apps/api/src/__tests__/index-optimization.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-optimization.test.ts:56` calls `GET /index/optimize?workspaceId=ws-1&lookbackDays=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f6d8f9aa8171e90c", "name": "Dangling fetch: GET /index/optimize?workspaceId=ws-1 (apps/api/src/__tests__/index-optimization.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /index/optimize?workspaceId=ws-1 (apps/api/src/__tests__/index-optimization.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-optimization.test.ts:62` calls `GET /index/optimize?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b604a3c03b2c4163", "name": "Dangling fetch: POST /workspaces/ws-1/disable (apps/api/src/__tests__/admin-system.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /workspaces/ws-1/disable (apps/api/src/__tests__/admin-system.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-system.test.ts:119` calls `POST /workspaces/ws-1/disable` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/disable`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-719ab881baead671", "name": "Dangling fetch: POST /workspaces/bad-id/disable (apps/api/src/__tests__/admin-system.test.ts:132)", "shortDescription": {"text": "Dangling fetch: POST /workspaces/bad-id/disable (apps/api/src/__tests__/admin-system.test.ts:132)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-system.test.ts:132` calls `POST /workspaces/bad-id/disable` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/bad-id/disable`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02110d22dfb90391", "name": "Dangling fetch: POST /workspaces/ws-1/disable (apps/api/src/__tests__/admin-system.test.ts:143)", "shortDescription": {"text": "Dangling fetch: POST /workspaces/ws-1/disable (apps/api/src/__tests__/admin-system.test.ts:143)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-system.test.ts:143` calls `POST /workspaces/ws-1/disable` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/disable`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4c63dba1fc1d0788", "name": "Dangling fetch: POST /index-repair/scan (apps/api/src/__tests__/index-repair.test.ts:60)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/scan (apps/api/src/__tests__/index-repair.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:60` calls `POST /index-repair/scan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/scan`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03e3471e0fbe8596", "name": "Dangling fetch: POST /index-repair/scan (apps/api/src/__tests__/index-repair.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/scan (apps/api/src/__tests__/index-repair.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:70` calls `POST /index-repair/scan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/scan`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4c025f941db6f56", "name": "Dangling fetch: GET /index-repair/scans (apps/api/src/__tests__/index-repair.test.ts:78)", "shortDescription": {"text": "Dangling fetch: GET /index-repair/scans (apps/api/src/__tests__/index-repair.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:78` calls `GET /index-repair/scans` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/scans`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83387a53688b00ec", "name": "Dangling fetch: GET /index-repair/report (apps/api/src/__tests__/index-repair.test.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /index-repair/report (apps/api/src/__tests__/index-repair.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:88` calls `GET /index-repair/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56f0a330ce0db9c1", "name": "Dangling fetch: GET /index-repair/report (apps/api/src/__tests__/index-repair.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /index-repair/report (apps/api/src/__tests__/index-repair.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:98` calls `GET /index-repair/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c87f9ee13cba565", "name": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:106` calls `POST /index-repair/rebuild` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/rebuild`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d366c550074fe15e", "name": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:124` calls `POST /index-repair/rebuild` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/rebuild`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db221827b5e20378", "name": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:133` calls `POST /index-repair/rebuild` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/rebuild`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c05a023a9b7c9eb", "name": "Dangling fetch: GET /index-repair/rebuild-jobs (apps/api/src/__tests__/index-repair.test.ts:145)", "shortDescription": {"text": "Dangling fetch: GET /index-repair/rebuild-jobs (apps/api/src/__tests__/index-repair.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:145` calls `GET /index-repair/rebuild-jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/rebuild-jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3fc35d46d817ec8", "name": "Dangling fetch: POST /index-repair/rollback/snap-missing (apps/api/src/__tests__/index-repair.test.ts:155)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/rollback/snap-missing (apps/api/src/__tests__/index-repair.test.ts:155)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:155` calls `POST /index-repair/rollback/snap-missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/rollback/snap-missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28c700b060c264f8", "name": "Dangling fetch: POST /index-repair/rollback/snap-valid (apps/api/src/__tests__/index-repair.test.ts:164)", "shortDescription": {"text": "Dangling fetch: POST /index-repair/rollback/snap-valid (apps/api/src/__tests__/index-repair.test.ts:164)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-repair.test.ts:164` calls `POST /index-repair/rollback/snap-valid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/index-repair/rollback/snap-valid`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-434cf385a1fd5c7b", "name": "Dangling fetch: POST /recipe-1/apply-to-workspace (apps/api/src/__tests__/connector-recipes.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /recipe-1/apply-to-workspace (apps/api/src/__tests__/connector-recipes.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:146` calls `POST /recipe-1/apply-to-workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/apply-to-workspace`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd3c316723675fcc", "name": "Dangling fetch: POST /recipe-1/apply-to-workspace (apps/api/src/__tests__/connector-recipes.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /recipe-1/apply-to-workspace (apps/api/src/__tests__/connector-recipes.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:154` calls `POST /recipe-1/apply-to-workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/apply-to-workspace`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9dfb115fd15100bb", "name": "Dangling fetch: POST /recipe-1/clone (apps/api/src/__tests__/connector-recipes.test.ts:163)", "shortDescription": {"text": "Dangling fetch: POST /recipe-1/clone (apps/api/src/__tests__/connector-recipes.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:163` calls `POST /recipe-1/clone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/clone`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf4cc48a2646752e", "name": "Dangling fetch: POST /recipe-1/clone (apps/api/src/__tests__/connector-recipes.test.ts:169)", "shortDescription": {"text": "Dangling fetch: POST /recipe-1/clone (apps/api/src/__tests__/connector-recipes.test.ts:169)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:169` calls `POST /recipe-1/clone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/clone`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8aa7be620f5ea80", "name": "Dangling fetch: GET /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:178)", "shortDescription": {"text": "Dangling fetch: GET /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:178)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:178` calls `GET /recipe-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5df23068d24c2e96", "name": "Dangling fetch: GET /missing-recipe (apps/api/src/__tests__/connector-recipes.test.ts:185)", "shortDescription": {"text": "Dangling fetch: GET /missing-recipe (apps/api/src/__tests__/connector-recipes.test.ts:185)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:185` calls `GET /missing-recipe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/missing-recipe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3fde795870fd80b", "name": "Dangling fetch: DELETE /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:194)", "shortDescription": {"text": "Dangling fetch: DELETE /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:194)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:194` calls `DELETE /recipe-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10962b2779607d30", "name": "Dangling fetch: DELETE /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:202)", "shortDescription": {"text": "Dangling fetch: DELETE /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:202)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:202` calls `DELETE /recipe-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e2b2c93f7455bf76", "name": "Dangling fetch: GET /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:212)", "shortDescription": {"text": "Dangling fetch: GET /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:212)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:212` calls `GET /recipe-1/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b0429a0c5311403", "name": "Dangling fetch: POST /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:222)", "shortDescription": {"text": "Dangling fetch: POST /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:222)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:222` calls `POST /recipe-1/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f84b1b5f888e419", "name": "Dangling fetch: POST /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:232)", "shortDescription": {"text": "Dangling fetch: POST /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:232)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-recipes.test.ts:232` calls `POST /recipe-1/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/recipe-1/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5deab064ca83a6f0", "name": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:59` calls `GET /email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56a809ecbe1a41f3", "name": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:68` calls `GET /email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0eaaff853182f13", "name": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:75` calls `GET /email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-728cf8580c642a72", "name": "Dangling fetch: GET /email-templates/tmpl-1 (apps/api/src/__tests__/email-templates.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /email-templates/tmpl-1 (apps/api/src/__tests__/email-templates.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:82` calls `GET /email-templates/tmpl-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates/tmpl-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb947c533cf3b10e", "name": "Dangling fetch: GET /email-templates/missing (apps/api/src/__tests__/email-templates.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /email-templates/missing (apps/api/src/__tests__/email-templates.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:90` calls `GET /email-templates/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-447b9e157faea75c", "name": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:97)", "shortDescription": {"text": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:97` calls `POST /email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbef190c1a41560c", "name": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:113)", "shortDescription": {"text": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:113` calls `POST /email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d16c9a5901e6fd0", "name": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:123` calls `POST /email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f99ca1d92b36b095", "name": "Dangling fetch: PUT /email-templates/alert-default (apps/api/src/__tests__/email-templates.test.ts:134)", "shortDescription": {"text": "Dangling fetch: PUT /email-templates/alert-default (apps/api/src/__tests__/email-templates.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:134` calls `PUT /email-templates/alert-default` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates/alert-default`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a8a4e871b843a58", "name": "Dangling fetch: DELETE /email-templates/tmpl-1 (apps/api/src/__tests__/email-templates.test.ts:145)", "shortDescription": {"text": "Dangling fetch: DELETE /email-templates/tmpl-1 (apps/api/src/__tests__/email-templates.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:145` calls `DELETE /email-templates/tmpl-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates/tmpl-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9706226275084e64", "name": "Dangling fetch: POST /email-templates/render (apps/api/src/__tests__/email-templates.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /email-templates/render (apps/api/src/__tests__/email-templates.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:154` calls `POST /email-templates/render` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates/render`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8eb1b3b798a4eb9c", "name": "Dangling fetch: POST /email-templates/render (apps/api/src/__tests__/email-templates.test.ts:166)", "shortDescription": {"text": "Dangling fetch: POST /email-templates/render (apps/api/src/__tests__/email-templates.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/email-templates.test.ts:166` calls `POST /email-templates/render` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/email-templates/render`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-acf2f8fbebc56d38", "name": "Dangling fetch: GET /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/suggestions.test.ts:48` calls `GET /context-suggestions?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d8969e7c643ccc0", "name": "Dangling fetch: GET /context-suggestions (apps/api/src/__tests__/suggestions.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /context-suggestions (apps/api/src/__tests__/suggestions.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/suggestions.test.ts:55` calls `GET /context-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1734fa45c988ba15", "name": "Dangling fetch: GET /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/suggestions.test.ts:61` calls `GET /context-suggestions?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed4c8e6d91a8ecb8", "name": "Dangling fetch: POST /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:69)", "shortDescription": {"text": "Dangling fetch: POST /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/suggestions.test.ts:69` calls `POST /context-suggestions?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91556832b0014425", "name": "Dangling fetch: POST /context-suggestions (apps/api/src/__tests__/suggestions.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /context-suggestions (apps/api/src/__tests__/suggestions.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/suggestions.test.ts:83` calls `POST /context-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e673cc19fcf96a92", "name": "Dangling fetch: GET /admin/index/maintenance (apps/api/src/__tests__/admin-index.test.ts:44)", "shortDescription": {"text": "Dangling fetch: GET /admin/index/maintenance (apps/api/src/__tests__/admin-index.test.ts:44)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:44` calls `GET /admin/index/maintenance` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55707343f905fef7", "name": "Dangling fetch: GET /admin/index/maintenance?workspaceId=ws-1 (apps/api/src/__tests__/admin-index.test.ts:50)", "shortDescription": {"text": "Dangling fetch: GET /admin/index/maintenance?workspaceId=ws-1 (apps/api/src/__tests__/admin-index.test.ts:50)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:50` calls `GET /admin/index/maintenance?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92f35b9c7033bafe", "name": "Dangling fetch: GET /admin/index/maintenance?workspaceId=ws-1&limit=10 (apps/api/src/__tests__/admin-index.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET /admin/index/maintenance?workspaceId=ws-1&limit=10 (apps/api/src/__tests__/admin-index.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:59` calls `GET /admin/index/maintenance?workspaceId=ws-1&limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d4524393ae9a682", "name": "Dangling fetch: POST /admin/index/maintenance/unknown/trigger (apps/api/src/__tests__/admin-index.test.ts:68)", "shortDescription": {"text": "Dangling fetch: POST /admin/index/maintenance/unknown/trigger (apps/api/src/__tests__/admin-index.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:68` calls `POST /admin/index/maintenance/unknown/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance/unknown/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0fa22bb32adec3d", "name": "Dangling fetch: POST /admin/index/maintenance/deduplicate/trigger (apps/api/src/__tests__/admin-index.test.ts:78)", "shortDescription": {"text": "Dangling fetch: POST /admin/index/maintenance/deduplicate/trigger (apps/api/src/__tests__/admin-index.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:78` calls `POST /admin/index/maintenance/deduplicate/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance/deduplicate/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d1a84eb5dc24a30", "name": "Dangling fetch: POST /admin/index/maintenance/prune_stale/trigger (apps/api/src/__tests__/admin-index.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /admin/index/maintenance/prune_stale/trigger (apps/api/src/__tests__/admin-index.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:90` calls `POST /admin/index/maintenance/prune_stale/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance/prune_stale/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53a5d0569b70b05f", "name": "Dangling fetch: POST /admin/index/maintenance/rebalance/trigger (apps/api/src/__tests__/admin-index.test.ts:100)", "shortDescription": {"text": "Dangling fetch: POST /admin/index/maintenance/rebalance/trigger (apps/api/src/__tests__/admin-index.test.ts:100)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:100` calls `POST /admin/index/maintenance/rebalance/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance/rebalance/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a5dcb23494900faa", "name": "Dangling fetch: POST /admin/index/maintenance/integrity_check/trigger (apps/api/src/__tests__/admin-index.test.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /admin/index/maintenance/integrity_check/trigger (apps/api/src/__tests__/admin-index.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:110` calls `POST /admin/index/maintenance/integrity_check/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance/integrity_check/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aae208029392d1aa", "name": "Dangling fetch: POST /admin/index/maintenance/deduplicate/trigger (apps/api/src/__tests__/admin-index.test.ts:120)", "shortDescription": {"text": "Dangling fetch: POST /admin/index/maintenance/deduplicate/trigger (apps/api/src/__tests__/admin-index.test.ts:120)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:120` calls `POST /admin/index/maintenance/deduplicate/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/maintenance/deduplicate/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa05b41045c506d7", "name": "Dangling fetch: GET /admin/index/health (apps/api/src/__tests__/admin-index.test.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /admin/index/health (apps/api/src/__tests__/admin-index.test.ts:132)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:132` calls `GET /admin/index/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/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-2c4897092b7a1413", "name": "Dangling fetch: GET /admin/index/health?workspaceId=ws-1 (apps/api/src/__tests__/admin-index.test.ts:138)", "shortDescription": {"text": "Dangling fetch: GET /admin/index/health?workspaceId=ws-1 (apps/api/src/__tests__/admin-index.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-index.test.ts:138` calls `GET /admin/index/health?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/index/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-ef2b090398c08d00", "name": "Dangling fetch: GET /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:43)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:43` calls `GET /api/v1/admin/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f01d5213323632a2", "name": "Dangling fetch: GET /api/v1/admin/rules?entityType=contact (apps/api/src/__tests__/business-rules.test.ts:50)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/rules?entityType=contact (apps/api/src/__tests__/business-rules.test.ts:50)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:50` calls `GET /api/v1/admin/rules?entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-644c71a920ce78d0", "name": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:57)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:57` calls `POST /api/v1/admin/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd08041b66690eca", "name": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:72)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:72` calls `POST /api/v1/admin/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd43c0639ccf5173", "name": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:81)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:81` calls `POST /api/v1/admin/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-594c05fc0d1bbf5b", "name": "Dangling fetch: POST /api/v1/admin/rules/validate (apps/api/src/__tests__/business-rules.test.ts:92)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules/validate (apps/api/src/__tests__/business-rules.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:92` calls `POST /api/v1/admin/rules/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules/validate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a3c97b7a61de673", "name": "Dangling fetch: POST /api/v1/admin/rules/validate (apps/api/src/__tests__/business-rules.test.ts:104)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules/validate (apps/api/src/__tests__/business-rules.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:104` calls `POST /api/v1/admin/rules/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules/validate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a3b005b6658b5e0", "name": "Dangling fetch: GET /api/v1/admin/rules/violations (apps/api/src/__tests__/business-rules.test.ts:115)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/rules/violations (apps/api/src/__tests__/business-rules.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:115` calls `GET /api/v1/admin/rules/violations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules/violations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c37833d6b613b5f", "name": "Dangling fetch: POST /api/v1/admin/rules/auto-fix (apps/api/src/__tests__/business-rules.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules/auto-fix (apps/api/src/__tests__/business-rules.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:124` calls `POST /api/v1/admin/rules/auto-fix` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules/auto-fix`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb25acfd1e96be64", "name": "Dangling fetch: POST /api/v1/admin/rules/auto-fix (apps/api/src/__tests__/business-rules.test.ts:135)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules/auto-fix (apps/api/src/__tests__/business-rules.test.ts:135)"}, "fullDescription": {"text": "`apps/api/src/__tests__/business-rules.test.ts:135` calls `POST /api/v1/admin/rules/auto-fix` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/rules/auto-fix`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f1bfd4f0979d4a4", "name": "Dangling fetch: GET /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:23)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:23)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:23` calls `GET /api/v1/admin/slos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3dd3cf8efedb9f4", "name": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:36)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:36)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:36` calls `POST /api/v1/admin/slos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62af9685bb4230fb", "name": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:49)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:49` calls `POST /api/v1/admin/slos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a71ddebb853b085d", "name": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:60)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:60` calls `POST /api/v1/admin/slos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0e4391d43275aa1", "name": "Dangling fetch: GET /api/v1/admin/slos/violations (apps/api/src/__tests__/slo-admin.test.ts:73)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/slos/violations (apps/api/src/__tests__/slo-admin.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:73` calls `GET /api/v1/admin/slos/violations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos/violations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa139157df12e34b", "name": "Dangling fetch: POST /api/v1/admin/slos/events (apps/api/src/__tests__/slo-admin.test.ts:86)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/slos/events (apps/api/src/__tests__/slo-admin.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:86` calls `POST /api/v1/admin/slos/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4743c6ab6429687f", "name": "Dangling fetch: POST /api/v1/admin/slos/events (apps/api/src/__tests__/slo-admin.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/slos/events (apps/api/src/__tests__/slo-admin.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:99` calls `POST /api/v1/admin/slos/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6668807e4a33547e", "name": "Dangling fetch: POST /api/v1/admin/slos/detect (apps/api/src/__tests__/slo-admin.test.ts:112)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/slos/detect (apps/api/src/__tests__/slo-admin.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/slo-admin.test.ts:112` calls `POST /api/v1/admin/slos/detect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/slos/detect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-304fac992e72deb8", "name": "Dangling fetch: GET /streaming-queries/stream (apps/api/src/__tests__/streaming-queries.test.ts:37)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream (apps/api/src/__tests__/streaming-queries.test.ts:37)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:37` calls `GET /streaming-queries/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1836637e92566d51", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:42` calls `GET /streaming-queries/stream?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d02863b97af52bea", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:47` calls `GET /streaming-queries/stream?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-175ac060ead1cd2f", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:52)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:52` calls `GET /streaming-queries/stream?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83446d177780e160", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:59` calls `GET /streaming-queries/stream?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-061c12767136173d", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:72)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:72` calls `GET /streaming-queries/stream?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17f5dca0aa2657b4", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:83` calls `GET /streaming-queries/stream?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-823ec02cb7fdf7f4", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=500 (apps/api/src/__tests__/streaming-queri", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=500 (apps/api/src/__tests__/streaming-queries.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:94` calls `GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=500` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9a64a881ab832a0", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=9999 (apps/api/src/__tests__/streaming-quer", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=9999 (apps/api/src/__tests__/streaming-queries.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:99` calls `GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=9999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fc5ba454b467dbb", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&entityTypes=contact,deal (apps/api/src/__tests__/streamin", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&entityTypes=contact,deal (apps/api/src/__tests__/streaming-queries.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:105` calls `GET /streaming-queries/stream?workspaceId=ws-1&entityTypes=contact,deal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be13b21143882e06", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&maxTokensPerChunk=200 (apps/api/src/__tests__/streaming-q", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&maxTokensPerChunk=200 (apps/api/src/__tests__/streaming-queries.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:116` calls `GET /streaming-queries/stream?workspaceId=ws-1&maxTokensPerChunk=200` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b67b52ee976080b8", "name": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=100&maxTokensPerChunk=40 (apps/api/src/__te", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=100&maxTokensPerChunk=40 (apps/api/src/__tests__/streaming-queries.test.ts:129)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:129` calls `GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=100&maxTokensPerChunk=40` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d2911df58278f34", "name": "Dangling fetch: GET /streaming-queries/sessions/non-existent (apps/api/src/__tests__/streaming-queries.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/sessions/non-existent (apps/api/src/__tests__/streaming-queries.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:141` calls `GET /streaming-queries/sessions/non-existent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/sessions/non-existent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b346da7642dfec4", "name": "Dangling fetch: GET /streaming-queries/sessions/stream-uuid-123 (apps/api/src/__tests__/streaming-queries.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /streaming-queries/sessions/stream-uuid-123 (apps/api/src/__tests__/streaming-queries.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/streaming-queries.test.ts:153` calls `GET /streaming-queries/sessions/stream-uuid-123` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/streaming-queries/sessions/stream-uuid-123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31a8d43c28545f9d", "name": "Dangling fetch: GET /connectors/c-1/forecast?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:27)", "shortDescription": {"text": "Dangling fetch: GET /connectors/c-1/forecast?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:27)"}, "fullDescription": {"text": "`apps/api/src/__tests__/health-forecasts.test.ts:27` calls `GET /connectors/c-1/forecast?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/c-1/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe6d3da18b30ae7b", "name": "Dangling fetch: GET /connectors/c-1/forecast?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /connectors/c-1/forecast?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:41)"}, "fullDescription": {"text": "`apps/api/src/__tests__/health-forecasts.test.ts:41` calls `GET /connectors/c-1/forecast?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/c-1/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4293a8d47d46d98", "name": "Dangling fetch: GET /connectors/c-1/forecast?days=14&workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:4", "shortDescription": {"text": "Dangling fetch: GET /connectors/c-1/forecast?days=14&workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/health-forecasts.test.ts:49` calls `GET /connectors/c-1/forecast?days=14&workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/c-1/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ce7e155b109acc7", "name": "Dangling fetch: GET /connectors/c-1/forecast-alerts?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:59", "shortDescription": {"text": "Dangling fetch: GET /connectors/c-1/forecast-alerts?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/health-forecasts.test.ts:59` calls `GET /connectors/c-1/forecast-alerts?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/c-1/forecast-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-4290315253988f62", "name": "Dangling fetch: GET /connectors/c-1/forecast-alerts?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:74", "shortDescription": {"text": "Dangling fetch: GET /connectors/c-1/forecast-alerts?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/health-forecasts.test.ts:74` calls `GET /connectors/c-1/forecast-alerts?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/c-1/forecast-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-16502e71dc0450b6", "name": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:46)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/field-mappings.test.ts:46` calls `POST /connectors/hubspot/suggest-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/suggest-mapping`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-400ec929aa22c0cc", "name": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:64)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/field-mappings.test.ts:64` calls `POST /connectors/hubspot/suggest-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/suggest-mapping`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7bbcf255fa9c2180", "name": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/field-mappings.test.ts:73` calls `POST /connectors/hubspot/suggest-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/suggest-mapping`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66a59956a0171f38", "name": "Dangling fetch: GET /connectors/hubspot/mapping-suggestions (apps/api/src/__tests__/field-mappings.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /connectors/hubspot/mapping-suggestions (apps/api/src/__tests__/field-mappings.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/field-mappings.test.ts:84` calls `GET /connectors/hubspot/mapping-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/mapping-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c40f39a9ace908c6", "name": "Dangling fetch: POST /connectors/hubspot/mapping-suggestions/confirm (apps/api/src/__tests__/field-mappings.test.ts:95)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/mapping-suggestions/confirm (apps/api/src/__tests__/field-mappings.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/field-mappings.test.ts:95` calls `POST /connectors/hubspot/mapping-suggestions/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/mapping-suggestions/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8923e70a584af6a9", "name": "Dangling fetch: POST /connectors/hubspot/mapping-suggestions/confirm (apps/api/src/__tests__/field-mappings.test.ts:111)", "shortDescription": {"text": "Dangling fetch: POST /connectors/hubspot/mapping-suggestions/confirm (apps/api/src/__tests__/field-mappings.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/field-mappings.test.ts:111` calls `POST /connectors/hubspot/mapping-suggestions/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/hubspot/mapping-suggestions/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8dc96cc9000c0f00", "name": "Dangling fetch: GET /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:53)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:53` calls `GET /api/v1/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b28562f015a0668a", "name": "Dangling fetch: GET /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:60` calls `GET /api/v1/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9bcb66ef2567cb04", "name": "Dangling fetch: GET /api/v1/templates?search=contacts (apps/api/src/__tests__/query-templates.test.ts:70)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates?search=contacts (apps/api/src/__tests__/query-templates.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:70` calls `GET /api/v1/templates?search=contacts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b5c2936e7e5c27ab", "name": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:79)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:79` calls `POST /api/v1/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a370af8fd77a7a30", "name": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:88)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:88` calls `POST /api/v1/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e430525e71456d6b", "name": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:97)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:97` calls `POST /api/v1/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc539e980e949bbb", "name": "Dangling fetch: PUT /api/v1/templates/tpl-1 (apps/api/src/__tests__/query-templates.test.ts:111)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/templates/tpl-1 (apps/api/src/__tests__/query-templates.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:111` calls `PUT /api/v1/templates/tpl-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/tpl-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7b70051be65e599", "name": "Dangling fetch: PUT /api/v1/templates/tpl-1 (apps/api/src/__tests__/query-templates.test.ts:123)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/templates/tpl-1 (apps/api/src/__tests__/query-templates.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:123` calls `PUT /api/v1/templates/tpl-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/tpl-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47eabc7024bb8fcb", "name": "Dangling fetch: POST /api/v1/templates/tpl-1/instantiate (apps/api/src/__tests__/query-templates.test.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates/tpl-1/instantiate (apps/api/src/__tests__/query-templates.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:134` calls `POST /api/v1/templates/tpl-1/instantiate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/tpl-1/instantiate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9462984379f615c8", "name": "Dangling fetch: POST /api/v1/templates/tpl-1/instantiate (apps/api/src/__tests__/query-templates.test.ts:145)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates/tpl-1/instantiate (apps/api/src/__tests__/query-templates.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:145` calls `POST /api/v1/templates/tpl-1/instantiate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/tpl-1/instantiate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d030d1d9f08c3e73", "name": "Dangling fetch: GET /api/v1/templates/tpl-1/analytics (apps/api/src/__tests__/query-templates.test.ts:156)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates/tpl-1/analytics (apps/api/src/__tests__/query-templates.test.ts:156)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-templates.test.ts:156` calls `GET /api/v1/templates/tpl-1/analytics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/tpl-1/analytics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3025901722d0054", "name": "Dangling fetch: GET /query-analytics (apps/api/src/__tests__/query-analytics.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /query-analytics (apps/api/src/__tests__/query-analytics.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-analytics.test.ts:69` calls `GET /query-analytics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-analytics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a3f43f5c34780b15", "name": "Dangling fetch: GET /query-analytics/patterns (apps/api/src/__tests__/query-analytics.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /query-analytics/patterns (apps/api/src/__tests__/query-analytics.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-analytics.test.ts:82` calls `GET /query-analytics/patterns` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-analytics/patterns`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0302f163dfb2fd90", "name": "Dangling fetch: GET /governance/lineage?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:27)", "shortDescription": {"text": "Dangling fetch: GET /governance/lineage?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:27)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:27` calls `GET /governance/lineage?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cde526609def5017", "name": "Dangling fetch: GET /governance/lineage (apps/api/src/__tests__/governance-dashboard.test.ts:35)", "shortDescription": {"text": "Dangling fetch: GET /governance/lineage (apps/api/src/__tests__/governance-dashboard.test.ts:35)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:35` calls `GET /governance/lineage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2557ddab21348b68", "name": "Dangling fetch: GET /governance/audit-summary?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:45)", "shortDescription": {"text": "Dangling fetch: GET /governance/audit-summary?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:45` calls `GET /governance/audit-summary?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/audit-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-d984cace2aad5871", "name": "Dangling fetch: GET /governance/audit-summary?limit=10&offset=20 (apps/api/src/__tests__/governance-dashboard.test.ts:53", "shortDescription": {"text": "Dangling fetch: GET /governance/audit-summary?limit=10&offset=20 (apps/api/src/__tests__/governance-dashboard.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:53` calls `GET /governance/audit-summary?limit=10&offset=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/audit-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-c99f740a7f22b0cc", "name": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:81)", "shortDescription": {"text": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:81` calls `POST /governance/retention-policies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7004efa44e91bbe5", "name": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:93)", "shortDescription": {"text": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:93` calls `POST /governance/retention-policies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16f92ad52985e92d", "name": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:103` calls `POST /governance/retention-policies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1678b3755b4af21", "name": "Dangling fetch: GET /governance/retention-policies?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts", "shortDescription": {"text": "Dangling fetch: GET /governance/retention-policies?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:115` calls `GET /governance/retention-policies?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c67dd83e4fc28bf", "name": "Dangling fetch: GET /governance/compliance-status?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /governance/compliance-status?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:127)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:127` calls `GET /governance/compliance-status?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/compliance-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-ce9a596c11a19795", "name": "Dangling fetch: GET /governance/compliance-status?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /governance/compliance-status?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:153` calls `GET /governance/compliance-status?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/compliance-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-f03ca9293d2d6e44", "name": "Dangling fetch: PUT /governance/compliance-status (apps/api/src/__tests__/governance-dashboard.test.ts:164)", "shortDescription": {"text": "Dangling fetch: PUT /governance/compliance-status (apps/api/src/__tests__/governance-dashboard.test.ts:164)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:164` calls `PUT /governance/compliance-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/compliance-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-5423c7f34e9ec5a5", "name": "Dangling fetch: PUT /governance/compliance-status (apps/api/src/__tests__/governance-dashboard.test.ts:174)", "shortDescription": {"text": "Dangling fetch: PUT /governance/compliance-status (apps/api/src/__tests__/governance-dashboard.test.ts:174)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:174` calls `PUT /governance/compliance-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/compliance-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-2512cb4195e68376", "name": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:198)", "shortDescription": {"text": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:198)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:198` calls `POST /governance/dsr-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43fe2df224e6cd8a", "name": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:216)", "shortDescription": {"text": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:216)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:216` calls `POST /governance/dsr-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9b6a323fcd3e5eb", "name": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:231)", "shortDescription": {"text": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:231)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:231` calls `POST /governance/dsr-queue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a0d5da3096b6262", "name": "Dangling fetch: GET /governance/dsr-queue?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:248)", "shortDescription": {"text": "Dangling fetch: GET /governance/dsr-queue?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:248)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:248` calls `GET /governance/dsr-queue?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2ce45f6ea34a89a", "name": "Dangling fetch: GET /governance/dsr-queue?workspaceId=ws-1&status=pending (apps/api/src/__tests__/governance-dashboard.t", "shortDescription": {"text": "Dangling fetch: GET /governance/dsr-queue?workspaceId=ws-1&status=pending (apps/api/src/__tests__/governance-dashboard.test.ts:256)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:256` calls `GET /governance/dsr-queue?workspaceId=ws-1&status=pending` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5d34760a8fc7145", "name": "Dangling fetch: PATCH /governance/dsr-queue/req-1/status (apps/api/src/__tests__/governance-dashboard.test.ts:264)", "shortDescription": {"text": "Dangling fetch: PATCH /governance/dsr-queue/req-1/status (apps/api/src/__tests__/governance-dashboard.test.ts:264)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:264` calls `PATCH /governance/dsr-queue/req-1/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue/req-1/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-cd0349c1f78f9242", "name": "Dangling fetch: PATCH /governance/dsr-queue/req-1/status (apps/api/src/__tests__/governance-dashboard.test.ts:274)", "shortDescription": {"text": "Dangling fetch: PATCH /governance/dsr-queue/req-1/status (apps/api/src/__tests__/governance-dashboard.test.ts:274)"}, "fullDescription": {"text": "`apps/api/src/__tests__/governance-dashboard.test.ts:274` calls `PATCH /governance/dsr-queue/req-1/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/governance/dsr-queue/req-1/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-dc32e21498552e11", "name": "Dangling fetch: GET /api/v1/mcp/stream/config (apps/api/src/__tests__/mcp-streaming.test.ts:30)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/stream/config (apps/api/src/__tests__/mcp-streaming.test.ts:30)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:30` calls `GET /api/v1/mcp/stream/config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream/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-46a33cabc8ebdce7", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:40)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:40)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:40` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c5d17ba1a97ff42", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:51)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:51` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3db56d8a64fd864", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:62)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:62` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ebc8955cd0fabe19", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:73` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f525884ad75ed2da", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:88)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:88` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87be74f8feb82c8b", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:101)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:101` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7eeee5d83081572", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:114)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:114` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9511815509e1a162", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:126)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:126` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52892b29f25c24ec", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:135)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:135)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:135` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5383194c0dd4314b", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:145)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-streaming.test.ts:145` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7eb6274ea3f09cce", "name": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:43)", "shortDescription": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:43)"}, "fullDescription": {"text": "`apps/api/src/__tests__/queries.test.ts:43` calls `POST /queries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/queries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f2aa81bc1dbfd0b", "name": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:55)", "shortDescription": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/queries.test.ts:55` calls `POST /queries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/queries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12ea8bf145fd2287", "name": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:64)", "shortDescription": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/queries.test.ts:64` calls `POST /queries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/queries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-479e0f4ed0e8c153", "name": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/queries.test.ts:73` calls `POST /queries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/queries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-69409f5a5a609d91", "name": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:86)", "shortDescription": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/queries.test.ts:86` calls `POST /queries` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/queries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a429f2e02ec77e96", "name": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/lineage.test.ts:66` calls `GET /lineage/deal:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/lineage/deal:1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a599d4e09be1dc5a", "name": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:73)", "shortDescription": {"text": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/lineage.test.ts:73` calls `GET /lineage/deal:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/lineage/deal:1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-337e46c02b348a50", "name": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/lineage.test.ts:83` calls `GET /lineage/deal:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/lineage/deal:1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aa1b067e240e98f", "name": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:94)", "shortDescription": {"text": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/lineage.test.ts:94` calls `POST /lineage/deal:1/impact-analysis` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/lineage/deal:1/impact-analysis`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07c18ec2e2968c52", "name": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:108)", "shortDescription": {"text": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:108)"}, "fullDescription": {"text": "`apps/api/src/__tests__/lineage.test.ts:108` calls `POST /lineage/deal:1/impact-analysis` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/lineage/deal:1/impact-analysis`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5de03b572308fb9c", "name": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:117)", "shortDescription": {"text": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/lineage.test.ts:117` calls `POST /lineage/deal:1/impact-analysis` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/lineage/deal:1/impact-analysis`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b273fdb8c02178a3", "name": "Dangling fetch: GET /cc-1 (apps/api/src/__tests__/custom-connectors.test.ts:97)", "shortDescription": {"text": "Dangling fetch: GET /cc-1 (apps/api/src/__tests__/custom-connectors.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/custom-connectors.test.ts:97` calls `GET /cc-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cc-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a01b2e83dfdd17a9", "name": "Dangling fetch: GET /cc-not-found (apps/api/src/__tests__/custom-connectors.test.ts:108)", "shortDescription": {"text": "Dangling fetch: GET /cc-not-found (apps/api/src/__tests__/custom-connectors.test.ts:108)"}, "fullDescription": {"text": "`apps/api/src/__tests__/custom-connectors.test.ts:108` calls `GET /cc-not-found` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cc-not-found`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-334c701090d923d8", "name": "Dangling fetch: DELETE /cc-1 (apps/api/src/__tests__/custom-connectors.test.ts:240)", "shortDescription": {"text": "Dangling fetch: DELETE /cc-1 (apps/api/src/__tests__/custom-connectors.test.ts:240)"}, "fullDescription": {"text": "`apps/api/src/__tests__/custom-connectors.test.ts:240` calls `DELETE /cc-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cc-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88e50ba0317346aa", "name": "Dangling fetch: DELETE /cc-not-mine (apps/api/src/__tests__/custom-connectors.test.ts:251)", "shortDescription": {"text": "Dangling fetch: DELETE /cc-not-mine (apps/api/src/__tests__/custom-connectors.test.ts:251)"}, "fullDescription": {"text": "`apps/api/src/__tests__/custom-connectors.test.ts:251` calls `DELETE /cc-not-mine` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cc-not-mine`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2674af3aa8cd895e", "name": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:43)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:43` calls `GET /dedup/candidates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be6ac792082cf9a7", "name": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:49)", "shortDescription": {"text": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:49` calls `GET /dedup/candidates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9df1e2920e29388", "name": "Dangling fetch: GET /dedup/candidates?limit=9999 (apps/api/src/__tests__/dedup-reconciliation.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /dedup/candidates?limit=9999 (apps/api/src/__tests__/dedup-reconciliation.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:56` calls `GET /dedup/candidates?limit=9999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6108bf65888d9cfd", "name": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:62` calls `GET /dedup/candidates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80be5f51e642b8b9", "name": "Dangling fetch: GET /dedup/metrics (apps/api/src/__tests__/dedup-reconciliation.test.ts:73)", "shortDescription": {"text": "Dangling fetch: GET /dedup/metrics (apps/api/src/__tests__/dedup-reconciliation.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:73` calls `GET /dedup/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/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-e1c962718f96b7c7", "name": "Dangling fetch: GET /dedup/metrics (apps/api/src/__tests__/dedup-reconciliation.test.ts:80)", "shortDescription": {"text": "Dangling fetch: GET /dedup/metrics (apps/api/src/__tests__/dedup-reconciliation.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:80` calls `GET /dedup/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/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-e665488c080e94ea", "name": "Dangling fetch: POST /dedup/candidates/hubspot:contact:1/salesforce:contact:2/decide (apps/api/src/__tests__/dedup-recon", "shortDescription": {"text": "Dangling fetch: POST /dedup/candidates/hubspot:contact:1/salesforce:contact:2/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:88` calls `POST /dedup/candidates/hubspot:contact:1/salesforce:contact:2/decide` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates/hubspot/<p>:1/salesforce/<p>:2/decide`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-693d35fb2448ee17", "name": "Dangling fetch: POST /dedup/candidates/a/b/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /dedup/candidates/a/b/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:99` calls `POST /dedup/candidates/a/b/decide` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates/a/b/decide`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-516e2c93780e0af3", "name": "Dangling fetch: POST /dedup/candidates/a/b/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:109)", "shortDescription": {"text": "Dangling fetch: POST /dedup/candidates/a/b/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:109` calls `POST /dedup/candidates/a/b/decide` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/candidates/a/b/decide`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6e67ea0c6af34da", "name": "Dangling fetch: POST /dedup/merge (apps/api/src/__tests__/dedup-reconciliation.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /dedup/merge (apps/api/src/__tests__/dedup-reconciliation.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:124` calls `POST /dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f48801b84418b5e", "name": "Dangling fetch: POST /dedup/merge (apps/api/src/__tests__/dedup-reconciliation.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /dedup/merge (apps/api/src/__tests__/dedup-reconciliation.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:133` calls `POST /dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f31871e4d3024201", "name": "Dangling fetch: POST /dedup/merge/hubspot:contact:1/salesforce:contact:2/undo (apps/api/src/__tests__/dedup-reconciliati", "shortDescription": {"text": "Dangling fetch: POST /dedup/merge/hubspot:contact:1/salesforce:contact:2/undo (apps/api/src/__tests__/dedup-reconciliation.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:145` calls `POST /dedup/merge/hubspot:contact:1/salesforce:contact:2/undo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/merge/hubspot/<p>:1/salesforce/<p>:2/undo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5f0dee6f94cc6bb", "name": "Dangling fetch: POST /dedup/merge/a/b/undo (apps/api/src/__tests__/dedup-reconciliation.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /dedup/merge/a/b/undo (apps/api/src/__tests__/dedup-reconciliation.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/dedup-reconciliation.test.ts:154` calls `POST /dedup/merge/a/b/undo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/dedup/merge/a/b/undo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-45dba388a6132ad4", "name": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies (apps/api/src/__tests__/metrics-anomalies.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies (apps/api/src/__tests__/metrics-anomalies.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:61` calls `GET /api/v1/metrics/${METRIC_ID}/anomalies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13326b3ec20341b1", "name": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies (apps/api/src/__tests__/metrics-anomalies.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies (apps/api/src/__tests__/metrics-anomalies.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:69` calls `GET /api/v1/metrics/${METRIC_ID}/anomalies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09cb3f5128abac89", "name": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies?includeAcknowledged=true (apps/api/src/__tests__/metrics-anom", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies?includeAcknowledged=true (apps/api/src/__tests__/metrics-anomalies.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:75` calls `GET /api/v1/metrics/${METRIC_ID}/anomalies?includeAcknowledged=true` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0853d890474a0664", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:93)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:93` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/detect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/detect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17ab9c1159c46b02", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:103", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:103` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/detect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/detect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-507981b4659738d7", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?lookbackDays=14&sensitivity=high (apps/api/src/__test", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?lookbackDays=14&sensitivity=high (apps/api/src/__tests__/metrics-anomalies.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:109` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?lookbackDays=14&sensitivity=high` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/detect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af16a0c37cdfd28a", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?sensitivity=extreme (apps/api/src/__tests__/metrics-a", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?sensitivity=extreme (apps/api/src/__tests__/metrics-anomalies.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:114` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?sensitivity=extreme` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/detect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6cf9cda338479632", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:120", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:120)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:120` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/detect` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/detect`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8452230c408571ea", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-an", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-anomalies.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:138` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/<p>/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-54bbc801ddfe9ec3", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-an", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-anomalies.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:150` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/<p>/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44ba7350443a52fb", "name": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-an", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-anomalies.test.ts:160)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:160` calls `POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/anomalies/<p>/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84038d7d7b7eb071", "name": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast (apps/api/src/__tests__/metrics-anomalies.test.ts:182)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast (apps/api/src/__tests__/metrics-anomalies.test.ts:182)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:182` calls `GET /api/v1/metrics/${METRIC_ID}/forecast` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e73f5b0bd74a946c", "name": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast (apps/api/src/__tests__/metrics-anomalies.test.ts:190)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast (apps/api/src/__tests__/metrics-anomalies.test.ts:190)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:190` calls `GET /api/v1/metrics/${METRIC_ID}/forecast` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-146797ae80c74b41", "name": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast?daysAhead=999 (apps/api/src/__tests__/metrics-anomalies.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast?daysAhead=999 (apps/api/src/__tests__/metrics-anomalies.test.ts:195)"}, "fullDescription": {"text": "`apps/api/src/__tests__/metrics-anomalies.test.ts:195` calls `GET /api/v1/metrics/${METRIC_ID}/forecast?daysAhead=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/metrics/<p>/forecast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52c3bf6a9bea493c", "name": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/2026-06-08 (apps/api/src/__tests__/temporal-cache.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/2026-06-08 (apps/api/src/__tests__/temporal-cache.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:55` calls `GET /api/v1/cache/temporal/find%20contacts/2026-06-08` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/temporal/find%20contacts/2026-06-08`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-749a2e4d1692730d", "name": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/not-a-date (apps/api/src/__tests__/temporal-cache.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/not-a-date (apps/api/src/__tests__/temporal-cache.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:62` calls `GET /api/v1/cache/temporal/find%20contacts/not-a-date` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/temporal/find%20contacts/not-a-date`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a5d9562043f56ca1", "name": "Dangling fetch: GET /api/v1/cache/temporal/unknown-query/2026-06-01 (apps/api/src/__tests__/temporal-cache.test.ts:76)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/temporal/unknown-query/2026-06-01 (apps/api/src/__tests__/temporal-cache.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:76` calls `GET /api/v1/cache/temporal/unknown-query/2026-06-01` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/temporal/unknown-query/2026-06-01`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a9157ea824db7fc", "name": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/2026-06-08 (apps/api/src/__tests__/temporal-cache.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/2026-06-08 (apps/api/src/__tests__/temporal-cache.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:90` calls `GET /api/v1/cache/temporal/find%20contacts/2026-06-08` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/temporal/find%20contacts/2026-06-08`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a41b5d3130972878", "name": "Dangling fetch: GET /api/v1/cache/analytics (apps/api/src/__tests__/temporal-cache.test.ts:97)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/analytics (apps/api/src/__tests__/temporal-cache.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:97` calls `GET /api/v1/cache/analytics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/analytics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f78f546c97d1fa6", "name": "Dangling fetch: GET /api/v1/cache/analytics?intervalDays=14 (apps/api/src/__tests__/temporal-cache.test.ts:105)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/analytics?intervalDays=14 (apps/api/src/__tests__/temporal-cache.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:105` calls `GET /api/v1/cache/analytics?intervalDays=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/analytics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b980404ca729e1b3", "name": "Dangling fetch: GET /api/v1/cache/analytics?intervalDays=200 (apps/api/src/__tests__/temporal-cache.test.ts:110)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/analytics?intervalDays=200 (apps/api/src/__tests__/temporal-cache.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:110` calls `GET /api/v1/cache/analytics?intervalDays=200` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/analytics`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92ce3d0f6f68519b", "name": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:117)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:117` calls `POST /api/v1/cache/preload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/preload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a3e2f93f8b58a25", "name": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:129)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:129)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:129` calls `POST /api/v1/cache/preload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/preload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-daca0e9b0b0dfda1", "name": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:138)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/temporal-cache.test.ts:138` calls `POST /api/v1/cache/preload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/cache/preload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6da1ffff24094ad", "name": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/api/src/__tests__/search-quality.test.ts:39)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/api/src/__tests__/search-quality.test.ts:39)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:39` calls `POST /api/v1/search-quality/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15395f5e53b63f14", "name": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/api/src/__tests__/search-quality.test.ts:51)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/api/src/__tests__/search-quality.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:51` calls `POST /api/v1/search-quality/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a33448161426ad1e", "name": "Dangling fetch: POST /api/v1/search-quality/test-sets (apps/api/src/__tests__/search-quality.test.ts:62)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/test-sets (apps/api/src/__tests__/search-quality.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:62` calls `POST /api/v1/search-quality/test-sets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/test-sets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db89c5f9dcb57209", "name": "Dangling fetch: POST /api/v1/search-quality/test-sets (apps/api/src/__tests__/search-quality.test.ts:77)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/test-sets (apps/api/src/__tests__/search-quality.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:77` calls `POST /api/v1/search-quality/test-sets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/test-sets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce3fe0d7d64ecc1c", "name": "Dangling fetch: POST /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:88)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:88` calls `POST /api/v1/search-quality/experiments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4223a80e918065ee", "name": "Dangling fetch: POST /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:99` calls `POST /api/v1/search-quality/experiments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e67f51a4b3ebfc7", "name": "Dangling fetch: GET /api/v1/search-quality/experiments?workspaceId=ws1 (apps/api/src/__tests__/search-quality.test.ts:11", "shortDescription": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments?workspaceId=ws1 (apps/api/src/__tests__/search-quality.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:110` calls `GET /api/v1/search-quality/experiments?workspaceId=ws1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8eaf017ea1938125", "name": "Dangling fetch: GET /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:117` calls `GET /api/v1/search-quality/experiments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c652fc9c76a1db02", "name": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/results (apps/api/src/__tests__/search-quality.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/results (apps/api/src/__tests__/search-quality.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:124` calls `POST /api/v1/search-quality/experiments/exp1/results` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments/exp1/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-1c92428006f9bbe1", "name": "Dangling fetch: GET /api/v1/search-quality/experiments/exp1/results (apps/api/src/__tests__/search-quality.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments/exp1/results (apps/api/src/__tests__/search-quality.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:137` calls `GET /api/v1/search-quality/experiments/exp1/results` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments/exp1/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-c3df213ae597a1ad", "name": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/promote (apps/api/src/__tests__/search-quality.test.ts:147)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/promote (apps/api/src/__tests__/search-quality.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:147` calls `POST /api/v1/search-quality/experiments/exp1/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments/exp1/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af6ae080b998ce5b", "name": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/promote (apps/api/src/__tests__/search-quality.test.ts:158)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/promote (apps/api/src/__tests__/search-quality.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/search-quality.test.ts:158` calls `POST /api/v1/search-quality/experiments/exp1/promote` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/search-quality/experiments/exp1/promote`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea9d01305f0f3b2a", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:57)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:57` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ac19cafe41c8e84", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:70` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48b7261c373c65e7", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:82)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:82` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-407d3498f14050d9", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:92)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:92` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2e0c595ce1e155b", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:101)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:101` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfd800af41ed811e", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:111)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:111` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7651fb479e750c0", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:122)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:122` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6d1e52c904a394e", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:134` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f3e56158b060f00", "name": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:145)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-explanation.test.ts:145` calls `POST /api/v1/queries/q-001/explain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/queries/q-001/explain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af7afeb7aa7b52e5", "name": "Dangling fetch: GET /entities/hubspot:contact:1?workspaceId=ws-1 (apps/api/src/__tests__/entities.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1?workspaceId=ws-1 (apps/api/src/__tests__/entities.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entities.test.ts:75` calls `GET /entities/hubspot:contact:1?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b564ef9274e6e67", "name": "Dangling fetch: GET /entities/nonexistent?workspaceId=ws-1 (apps/api/src/__tests__/entities.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /entities/nonexistent?workspaceId=ws-1 (apps/api/src/__tests__/entities.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entities.test.ts:83` calls `GET /entities/nonexistent?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89b41b2dd239085d", "name": "Dangling fetch: GET /entities/hubspot:contact:1 (apps/api/src/__tests__/entities.test.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1 (apps/api/src/__tests__/entities.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entities.test.ts:88` calls `GET /entities/hubspot:contact:1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8fffab6921e954c", "name": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:75)", "shortDescription": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:75` calls `POST /data-quality/scans/${CONNECTOR_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-1b985315970b6025", "name": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:84)", "shortDescription": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:84` calls `POST /data-quality/scans/${CONNECTOR_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-93e939a94d8eecad", "name": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:91)", "shortDescription": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:91` calls `POST /data-quality/scans/${CONNECTOR_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-62fbba782197ac95", "name": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:103` calls `POST /data-quality/scans/${CONNECTOR_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-b90d1ee9c7050d66", "name": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:115)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:115` calls `GET /data-quality/scans/${SCAN_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-08fd60cfb96ebb91", "name": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:125` calls `GET /data-quality/scans/${SCAN_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-9b4946819660bae9", "name": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:132)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:132` calls `GET /data-quality/scans/${SCAN_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/scans/<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-035fd9e10e986ba0", "name": "Dangling fetch: GET /data-quality/issues (apps/api/src/__tests__/data-quality-engine-routes.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/issues (apps/api/src/__tests__/data-quality-engine-routes.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:141` calls `GET /data-quality/issues` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d4b8ef8266229ce", "name": "Dangling fetch: GET /data-quality/issues?severity=high (apps/api/src/__tests__/data-quality-engine-routes.test.ts:151)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/issues?severity=high (apps/api/src/__tests__/data-quality-engine-routes.test.ts:151)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:151` calls `GET /data-quality/issues?severity=high` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-718b5dd6ac55017d", "name": "Dangling fetch: GET /data-quality/issues?issueType=type_mismatch (apps/api/src/__tests__/data-quality-engine-routes.test", "shortDescription": {"text": "Dangling fetch: GET /data-quality/issues?issueType=type_mismatch (apps/api/src/__tests__/data-quality-engine-routes.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:158` calls `GET /data-quality/issues?issueType=type_mismatch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e433b34ad6b4464e", "name": "Dangling fetch: GET /data-quality/issues?severity=critical (apps/api/src/__tests__/data-quality-engine-routes.test.ts:16", "shortDescription": {"text": "Dangling fetch: GET /data-quality/issues?severity=critical (apps/api/src/__tests__/data-quality-engine-routes.test.ts:164)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:164` calls `GET /data-quality/issues?severity=critical` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c1936facbc6d431", "name": "Dangling fetch: GET /data-quality/issues?limit=50 (apps/api/src/__tests__/data-quality-engine-routes.test.ts:172)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/issues?limit=50 (apps/api/src/__tests__/data-quality-engine-routes.test.ts:172)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:172` calls `GET /data-quality/issues?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b562558167c909e", "name": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts", "shortDescription": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:188)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:188` calls `POST /data-quality/issues/${ISSUE_ID}/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues/<p>/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1dfe5635874b5f10", "name": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts", "shortDescription": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:199)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:199` calls `POST /data-quality/issues/${ISSUE_ID}/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues/<p>/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d32323d6f1d6b4d7", "name": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts", "shortDescription": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:208)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:208` calls `POST /data-quality/issues/${ISSUE_ID}/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues/<p>/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb888d1c956ff4ac", "name": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts", "shortDescription": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:217)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:217` calls `POST /data-quality/issues/${ISSUE_ID}/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues/<p>/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ba9bc62eec1da50", "name": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts", "shortDescription": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:226` calls `POST /data-quality/issues/${ISSUE_ID}/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/issues/<p>/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e28c056353b3b50", "name": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:243)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:243)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:243` calls `GET /data-quality/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d33b6978299754a", "name": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:266)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:266)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:266` calls `GET /data-quality/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7384fa658b257cd3", "name": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:275)", "shortDescription": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:275)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-quality-engine-routes.test.ts:275` calls `GET /data-quality/report` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data-quality/report`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c1b234c0828db14", "name": "Dangling fetch: GET /api/v1/index/status (apps/api/src/__tests__/index-status.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/index/status (apps/api/src/__tests__/index-status.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-status.test.ts:42` calls `GET /api/v1/index/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/index/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-5fdeee620d909c43", "name": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:53)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-status.test.ts:53` calls `GET /api/v1/index/status?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/index/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-f17018a64555cfdc", "name": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-status.test.ts:68` calls `GET /api/v1/index/status?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/index/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-71c23a4041a4c26d", "name": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:81)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/index-status.test.ts:81` calls `GET /api/v1/index/status?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/index/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-72aeb6d88beaea80", "name": "Dangling fetch: GET /graph/inferred-relationships (apps/api/src/__tests__/relationship-inference.test.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /graph/inferred-relationships (apps/api/src/__tests__/relationship-inference.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:51` calls `GET /graph/inferred-relationships` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/inferred-relationships`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b1554eeb60e6455", "name": "Dangling fetch: GET /graph/inferred-relationships?topK=5 (apps/api/src/__tests__/relationship-inference.test.ts:61)", "shortDescription": {"text": "Dangling fetch: GET /graph/inferred-relationships?topK=5 (apps/api/src/__tests__/relationship-inference.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:61` calls `GET /graph/inferred-relationships?topK=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/inferred-relationships`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6a92f7517a8070f", "name": "Dangling fetch: POST /graph/inferred/rel1/confirm (apps/api/src/__tests__/relationship-inference.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /graph/inferred/rel1/confirm (apps/api/src/__tests__/relationship-inference.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:70` calls `POST /graph/inferred/rel1/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/inferred/rel1/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cec8f937a0d07982", "name": "Dangling fetch: POST /graph/inferred/rel1/reject (apps/api/src/__tests__/relationship-inference.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /graph/inferred/rel1/reject (apps/api/src/__tests__/relationship-inference.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:83` calls `POST /graph/inferred/rel1/reject` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/inferred/rel1/reject`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1b09bcd65b8d7d6", "name": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:95)", "shortDescription": {"text": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:95` calls `POST /graph/score-relationship` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/score-relationship`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a9ac95eec6883dc", "name": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:114)", "shortDescription": {"text": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:114` calls `POST /graph/score-relationship` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/score-relationship`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86b130d7551310d0", "name": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-inference.test.ts:123` calls `POST /graph/score-relationship` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/graph/score-relationship`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2178e403b59a70d", "name": "Dangling fetch: GET /api/v1/relationship-recommendations/entities/e1/suggestions (apps/api/src/__tests__/relationship-re", "shortDescription": {"text": "Dangling fetch: GET /api/v1/relationship-recommendations/entities/e1/suggestions (apps/api/src/__tests__/relationship-recommendations.test.ts:38)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:38` calls `GET /api/v1/relationship-recommendations/entities/e1/suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/entities/e1/suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25d2d44cc1649afc", "name": "Dangling fetch: GET /api/v1/relationship-recommendations/entities/e99/suggestions (apps/api/src/__tests__/relationship-r", "shortDescription": {"text": "Dangling fetch: GET /api/v1/relationship-recommendations/entities/e99/suggestions (apps/api/src/__tests__/relationship-recommendations.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:54` calls `GET /api/v1/relationship-recommendations/entities/e99/suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/entities/e99/suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c71bff0c874a463", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:61` calls `POST /api/v1/relationship-recommendations/auto-link` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/auto-link`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5ddb3a79cadf0b8", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:72` calls `POST /api/v1/relationship-recommendations/auto-link` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/auto-link`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59f089a7deaf2e8b", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:90` calls `POST /api/v1/relationship-recommendations/auto-link` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/auto-link`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d76d25315e37ae0", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/accept (apps/api/src/__tests__/relationship-recommend", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/accept (apps/api/src/__tests__/relationship-recommendations.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:101` calls `POST /api/v1/relationship-recommendations/feedback/accept` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/feedback/accept`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-574178f834ed6ba6", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/accept (apps/api/src/__tests__/relationship-recommend", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/accept (apps/api/src/__tests__/relationship-recommendations.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:112` calls `POST /api/v1/relationship-recommendations/feedback/accept` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/feedback/accept`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bff8c1d73e6ca034", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/deny (apps/api/src/__tests__/relationship-recommendat", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/deny (apps/api/src/__tests__/relationship-recommendations.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:123` calls `POST /api/v1/relationship-recommendations/feedback/deny` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/feedback/deny`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a7d2761884ed7b7", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/bulk-suggest (apps/api/src/__tests__/relationship-recommendati", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/bulk-suggest (apps/api/src/__tests__/relationship-recommendations.test.ts:136)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:136` calls `POST /api/v1/relationship-recommendations/bulk-suggest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/bulk-suggest`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6b393afd3486367e", "name": "Dangling fetch: POST /api/v1/relationship-recommendations/bulk-suggest (apps/api/src/__tests__/relationship-recommendati", "shortDescription": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/bulk-suggest (apps/api/src/__tests__/relationship-recommendations.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:147` calls `POST /api/v1/relationship-recommendations/bulk-suggest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/bulk-suggest`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2342e330247357a0", "name": "Dangling fetch: GET /api/v1/relationship-recommendations/metrics (apps/api/src/__tests__/relationship-recommendations.te", "shortDescription": {"text": "Dangling fetch: GET /api/v1/relationship-recommendations/metrics (apps/api/src/__tests__/relationship-recommendations.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/relationship-recommendations.test.ts:158` calls `GET /api/v1/relationship-recommendations/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/relationship-recommendations/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-0af1cb55b18749e4", "name": "Dangling fetch: GET /sessions/sess-1 (apps/api/src/__tests__/nl-query-sessions.test.ts:109)", "shortDescription": {"text": "Dangling fetch: GET /sessions/sess-1 (apps/api/src/__tests__/nl-query-sessions.test.ts:109)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:109` calls `GET /sessions/sess-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc220868c40b5eb4", "name": "Dangling fetch: GET /sessions/unknown (apps/api/src/__tests__/nl-query-sessions.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /sessions/unknown (apps/api/src/__tests__/nl-query-sessions.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:122` calls `GET /sessions/unknown` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/unknown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2ff4d83bd7d71a0", "name": "Dangling fetch: GET /sessions/sess-1 (apps/api/src/__tests__/nl-query-sessions.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /sessions/sess-1 (apps/api/src/__tests__/nl-query-sessions.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:134` calls `GET /sessions/sess-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f5487738c7ea0438", "name": "Dangling fetch: POST /sessions/sess-1/favorite (apps/api/src/__tests__/nl-query-sessions.test.ts:149)", "shortDescription": {"text": "Dangling fetch: POST /sessions/sess-1/favorite (apps/api/src/__tests__/nl-query-sessions.test.ts:149)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:149` calls `POST /sessions/sess-1/favorite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1/favorite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-922eb1d7f25adbb6", "name": "Dangling fetch: POST /sessions/unknown/favorite (apps/api/src/__tests__/nl-query-sessions.test.ts:164)", "shortDescription": {"text": "Dangling fetch: POST /sessions/unknown/favorite (apps/api/src/__tests__/nl-query-sessions.test.ts:164)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:164` calls `POST /sessions/unknown/favorite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/unknown/favorite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-279c32c95d58aa83", "name": "Dangling fetch: DELETE /sessions/sess-1/question/0 (apps/api/src/__tests__/nl-query-sessions.test.ts:184)", "shortDescription": {"text": "Dangling fetch: DELETE /sessions/sess-1/question/0 (apps/api/src/__tests__/nl-query-sessions.test.ts:184)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:184` calls `DELETE /sessions/sess-1/question/0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1/question/<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-1690b8e0d3d2e96c", "name": "Dangling fetch: DELETE /sessions/unknown/question/0 (apps/api/src/__tests__/nl-query-sessions.test.ts:200)", "shortDescription": {"text": "Dangling fetch: DELETE /sessions/unknown/question/0 (apps/api/src/__tests__/nl-query-sessions.test.ts:200)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:200` calls `DELETE /sessions/unknown/question/0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/unknown/question/<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-9dc7ad47407403c3", "name": "Dangling fetch: DELETE /sessions/sess-1/question/abc (apps/api/src/__tests__/nl-query-sessions.test.ts:209)", "shortDescription": {"text": "Dangling fetch: DELETE /sessions/sess-1/question/abc (apps/api/src/__tests__/nl-query-sessions.test.ts:209)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:209` calls `DELETE /sessions/sess-1/question/abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1/question/abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d693156bde677162", "name": "Dangling fetch: DELETE /sessions/sess-1/question/${row.follow_up_questions.length + 5} (apps/api/src/__tests__/nl-query-", "shortDescription": {"text": "Dangling fetch: DELETE /sessions/sess-1/question/${row.follow_up_questions.length + 5} (apps/api/src/__tests__/nl-query-sessions.test.ts:223)"}, "fullDescription": {"text": "`apps/api/src/__tests__/nl-query-sessions.test.ts:223` calls `DELETE /sessions/sess-1/question/${row.follow_up_questions.length + 5}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1/question/<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-5acfa5ad8c510150", "name": "Dangling fetch: GET /sdks/languages (apps/api/src/__tests__/sdk-downloads.test.ts:46)", "shortDescription": {"text": "Dangling fetch: GET /sdks/languages (apps/api/src/__tests__/sdk-downloads.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:46` calls `GET /sdks/languages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/languages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cba2e7df0d49135b", "name": "Dangling fetch: GET /sdks/tools (apps/api/src/__tests__/sdk-downloads.test.ts:60)", "shortDescription": {"text": "Dangling fetch: GET /sdks/tools (apps/api/src/__tests__/sdk-downloads.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:60` calls `GET /sdks/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11aaa80627631bdd", "name": "Dangling fetch: POST /sdks/generate/typescript (apps/api/src/__tests__/sdk-downloads.test.ts:80)", "shortDescription": {"text": "Dangling fetch: POST /sdks/generate/typescript (apps/api/src/__tests__/sdk-downloads.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:80` calls `POST /sdks/generate/typescript` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/generate/typescript`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56e357b75f7940d1", "name": "Dangling fetch: POST /sdks/generate/ruby (apps/api/src/__tests__/sdk-downloads.test.ts:93)", "shortDescription": {"text": "Dangling fetch: POST /sdks/generate/ruby (apps/api/src/__tests__/sdk-downloads.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:93` calls `POST /sdks/generate/ruby` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/generate/ruby`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf51da15ea8c57aa", "name": "Dangling fetch: POST /sdks/generate/python (apps/api/src/__tests__/sdk-downloads.test.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /sdks/generate/python (apps/api/src/__tests__/sdk-downloads.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:110` calls `POST /sdks/generate/python` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/generate/python`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f85b11e09de848e6", "name": "Dangling fetch: GET /sdks/jobs/job-1/status (apps/api/src/__tests__/sdk-downloads.test.ts:136)", "shortDescription": {"text": "Dangling fetch: GET /sdks/jobs/job-1/status (apps/api/src/__tests__/sdk-downloads.test.ts:136)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:136` calls `GET /sdks/jobs/job-1/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/jobs/job-1/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-5183edef65ce0c79", "name": "Dangling fetch: GET /sdks/jobs/nonexistent/status (apps/api/src/__tests__/sdk-downloads.test.ts:144)", "shortDescription": {"text": "Dangling fetch: GET /sdks/jobs/nonexistent/status (apps/api/src/__tests__/sdk-downloads.test.ts:144)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:144` calls `GET /sdks/jobs/nonexistent/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/jobs/nonexistent/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-85ce6d37302a921f", "name": "Dangling fetch: GET /sdks/jobs?workspaceId=ws-1 (apps/api/src/__tests__/sdk-downloads.test.ts:154)", "shortDescription": {"text": "Dangling fetch: GET /sdks/jobs?workspaceId=ws-1 (apps/api/src/__tests__/sdk-downloads.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:154` calls `GET /sdks/jobs?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95c77720857b51c0", "name": "Dangling fetch: GET /sdks/preview/typescript (apps/api/src/__tests__/sdk-downloads.test.ts:166)", "shortDescription": {"text": "Dangling fetch: GET /sdks/preview/typescript (apps/api/src/__tests__/sdk-downloads.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:166` calls `GET /sdks/preview/typescript` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/preview/typescript`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-547704f7bd7c6eae", "name": "Dangling fetch: GET /sdks/preview/python (apps/api/src/__tests__/sdk-downloads.test.ts:175)", "shortDescription": {"text": "Dangling fetch: GET /sdks/preview/python (apps/api/src/__tests__/sdk-downloads.test.ts:175)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:175` calls `GET /sdks/preview/python` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/preview/python`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7c97a7a821abe1b", "name": "Dangling fetch: GET /sdks/preview/rust (apps/api/src/__tests__/sdk-downloads.test.ts:181)", "shortDescription": {"text": "Dangling fetch: GET /sdks/preview/rust (apps/api/src/__tests__/sdk-downloads.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sdk-downloads.test.ts:181` calls `GET /sdks/preview/rust` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sdks/preview/rust`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e450cf370693a1c", "name": "Dangling fetch: POST /sessions/sess-1/refresh (apps/api/src/__tests__/sessions.test.ts:128)", "shortDescription": {"text": "Dangling fetch: POST /sessions/sess-1/refresh (apps/api/src/__tests__/sessions.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sessions.test.ts:128` calls `POST /sessions/sess-1/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-490b4eaf30dbfb00", "name": "Dangling fetch: POST /sessions/missing/refresh (apps/api/src/__tests__/sessions.test.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /sessions/missing/refresh (apps/api/src/__tests__/sessions.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sessions.test.ts:134` calls `POST /sessions/missing/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/missing/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-573f5b0b21ecafc5", "name": "Dangling fetch: DELETE /sessions/sess-1 (apps/api/src/__tests__/sessions.test.ts:141)", "shortDescription": {"text": "Dangling fetch: DELETE /sessions/sess-1 (apps/api/src/__tests__/sessions.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sessions.test.ts:141` calls `DELETE /sessions/sess-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/sess-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09b5c9f1711af64b", "name": "Dangling fetch: GET /sessions/devices?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:150)", "shortDescription": {"text": "Dangling fetch: GET /sessions/devices?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sessions.test.ts:150` calls `GET /sessions/devices?userId=user-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/devices`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d828569a7f8edac", "name": "Dangling fetch: POST /sessions/devices?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:159)", "shortDescription": {"text": "Dangling fetch: POST /sessions/devices?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:159)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sessions.test.ts:159` calls `POST /sessions/devices?userId=user-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/devices`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-193cc8142d61a959", "name": "Dangling fetch: DELETE /sessions/devices/dev-1?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:170)", "shortDescription": {"text": "Dangling fetch: DELETE /sessions/devices/dev-1?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sessions.test.ts:170` calls `DELETE /sessions/devices/dev-1?userId=user-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sessions/devices/dev-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-febc6b0ed02a1565", "name": "Dangling fetch: GET /workspaces/ws-test/index-expansion-recommendations (apps/api/src/__tests__/query-learning.test.ts:1", "shortDescription": {"text": "Dangling fetch: GET /workspaces/ws-test/index-expansion-recommendations (apps/api/src/__tests__/query-learning.test.ts:148)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-learning.test.ts:148` calls `GET /workspaces/ws-test/index-expansion-recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-test/index-expansion-recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc44ec63ccdeb3ca", "name": "Dangling fetch: GET /workspaces/ws-1/index-expansion-recommendations (apps/api/src/__tests__/query-learning.test.ts:157)", "shortDescription": {"text": "Dangling fetch: GET /workspaces/ws-1/index-expansion-recommendations (apps/api/src/__tests__/query-learning.test.ts:157)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-learning.test.ts:157` calls `GET /workspaces/ws-1/index-expansion-recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/index-expansion-recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb7cc41d6b4be357", "name": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:124)", "shortDescription": {"text": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:124` calls `GET /billing/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6be24871d69c3ead", "name": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:134` calls `GET /billing/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-490c7e033b507d3a", "name": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:140)", "shortDescription": {"text": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:140` calls `GET /billing/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f7011c5bd90d68c", "name": "Dangling fetch: GET /billing/tier (apps/api/src/__tests__/billing.test.ts:147)", "shortDescription": {"text": "Dangling fetch: GET /billing/tier (apps/api/src/__tests__/billing.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:147` calls `GET /billing/tier` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/tier`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64f4864b9399fa08", "name": "Dangling fetch: GET /billing/tier (apps/api/src/__tests__/billing.test.ts:155)", "shortDescription": {"text": "Dangling fetch: GET /billing/tier (apps/api/src/__tests__/billing.test.ts:155)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:155` calls `GET /billing/tier` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/tier`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a552ab723de5b37c", "name": "Dangling fetch: GET /billing/periods (apps/api/src/__tests__/billing.test.ts:162)", "shortDescription": {"text": "Dangling fetch: GET /billing/periods (apps/api/src/__tests__/billing.test.ts:162)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:162` calls `GET /billing/periods` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/periods`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae62769ae31ce7b0", "name": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:172)", "shortDescription": {"text": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:172)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:172` calls `POST /billing/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56ac36b476b387f4", "name": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:183)", "shortDescription": {"text": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:183)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:183` calls `POST /billing/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-923c91ae36f3081f", "name": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:193)", "shortDescription": {"text": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:193)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:193` calls `POST /billing/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66eb7615b8547f88", "name": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:204)", "shortDescription": {"text": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:204)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:204` calls `GET /billing/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06497c9a13c671e2", "name": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:216)", "shortDescription": {"text": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:216)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:216` calls `GET /billing/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cd39fcadfb2e333", "name": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:234)", "shortDescription": {"text": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:234)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:234` calls `GET /billing/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffe1c16c46676af6", "name": "Dangling fetch: GET /billing/connectors?periodStart=not-a-date (apps/api/src/__tests__/billing.test.ts:239)", "shortDescription": {"text": "Dangling fetch: GET /billing/connectors?periodStart=not-a-date (apps/api/src/__tests__/billing.test.ts:239)"}, "fullDescription": {"text": "`apps/api/src/__tests__/billing.test.ts:239` calls `GET /billing/connectors?periodStart=not-a-date` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/billing/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f4b7495d7e972d1", "name": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:57)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:57` calls `GET /entity-audit/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a326866d83d28f4", "name": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:66` calls `GET /entity-audit/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af6f1da00a9d1e21", "name": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:74)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:74` calls `GET /entity-audit/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-880442763ba59785", "name": "Dangling fetch: GET /entity-audit/entities/eid-1/history (apps/api/src/__tests__/entity-audit.test.ts:86)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/entities/eid-1/history (apps/api/src/__tests__/entity-audit.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:86` calls `GET /entity-audit/entities/eid-1/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/entities/eid-1/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-728f29f931b8c93d", "name": "Dangling fetch: GET /entity-audit/entities/eid-1/history?from=2026-01-01&to=2026-01-31 (apps/api/src/__tests__/entity-au", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/entities/eid-1/history?from=2026-01-01&to=2026-01-31 (apps/api/src/__tests__/entity-audit.test.ts:96)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:96` calls `GET /entity-audit/entities/eid-1/history?from=2026-01-01&to=2026-01-31` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/entities/eid-1/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-da4b72527b588a74", "name": "Dangling fetch: GET /entity-audit/entities/eid-1/fields/stage (apps/api/src/__tests__/entity-audit.test.ts:111)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/entities/eid-1/fields/stage (apps/api/src/__tests__/entity-audit.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:111` calls `GET /entity-audit/entities/eid-1/fields/stage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/entities/eid-1/fields/stage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8413db249ffeebaa", "name": "Dangling fetch: GET /entity-audit/anomalies (apps/api/src/__tests__/entity-audit.test.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/anomalies (apps/api/src/__tests__/entity-audit.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:125` calls `GET /entity-audit/anomalies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a929d23a7a78f767", "name": "Dangling fetch: GET /entity-audit/anomalies?lookbackDays=999 (apps/api/src/__tests__/entity-audit.test.ts:134)", "shortDescription": {"text": "Dangling fetch: GET /entity-audit/anomalies?lookbackDays=999 (apps/api/src/__tests__/entity-audit.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:134` calls `GET /entity-audit/anomalies?lookbackDays=999` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26944ed34eb5d7e7", "name": "Dangling fetch: POST /entity-audit/entities/eid-1/track (apps/api/src/__tests__/entity-audit.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /entity-audit/entities/eid-1/track (apps/api/src/__tests__/entity-audit.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:146` calls `POST /entity-audit/entities/eid-1/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/entities/eid-1/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1768bf51be037d78", "name": "Dangling fetch: POST /entity-audit/entities/eid-1/track (apps/api/src/__tests__/entity-audit.test.ts:163)", "shortDescription": {"text": "Dangling fetch: POST /entity-audit/entities/eid-1/track (apps/api/src/__tests__/entity-audit.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-audit.test.ts:163` calls `POST /entity-audit/entities/eid-1/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entity-audit/entities/eid-1/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90afc346f98bfa78", "name": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:63)", "shortDescription": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:63` calls `POST /data/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f63297b963aa0b4", "name": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:73` calls `POST /data/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bec8ddae621aa441", "name": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:92)", "shortDescription": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:92` calls `POST /data/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a752f117bdb7f63e", "name": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:102` calls `POST /data/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7bb4eda8a1a1817f", "name": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:124)", "shortDescription": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:124` calls `POST /data/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6350581a7c253e47", "name": "Dangling fetch: GET /data/export (apps/api/src/__tests__/data-import-export.test.ts:140)", "shortDescription": {"text": "Dangling fetch: GET /data/export (apps/api/src/__tests__/data-import-export.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:140` calls `GET /data/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0034e3f3d11a6369", "name": "Dangling fetch: GET /data/export?workspaceId=ws-1&format=json (apps/api/src/__tests__/data-import-export.test.ts:146)", "shortDescription": {"text": "Dangling fetch: GET /data/export?workspaceId=ws-1&format=json (apps/api/src/__tests__/data-import-export.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:146` calls `GET /data/export?workspaceId=ws-1&format=json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5c9ea22209de8f8", "name": "Dangling fetch: GET /data/export?workspaceId=ws-1&format=csv (apps/api/src/__tests__/data-import-export.test.ts:153)", "shortDescription": {"text": "Dangling fetch: GET /data/export?workspaceId=ws-1&format=csv (apps/api/src/__tests__/data-import-export.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:153` calls `GET /data/export?workspaceId=ws-1&format=csv` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9cdc47ef3c58b243", "name": "Dangling fetch: GET /data/export?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:160)", "shortDescription": {"text": "Dangling fetch: GET /data/export?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:160)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:160` calls `GET /data/export?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b86509db30f5a85", "name": "Dangling fetch: POST /data/import/schema (apps/api/src/__tests__/data-import-export.test.ts:171)", "shortDescription": {"text": "Dangling fetch: POST /data/import/schema (apps/api/src/__tests__/data-import-export.test.ts:171)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:171` calls `POST /data/import/schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import/schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78b347256b5c742b", "name": "Dangling fetch: POST /data/import/schema (apps/api/src/__tests__/data-import-export.test.ts:181)", "shortDescription": {"text": "Dangling fetch: POST /data/import/schema (apps/api/src/__tests__/data-import-export.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:181` calls `POST /data/import/schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/import/schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e8eacd4c933da10", "name": "Dangling fetch: GET /data/jobs (apps/api/src/__tests__/data-import-export.test.ts:197)", "shortDescription": {"text": "Dangling fetch: GET /data/jobs (apps/api/src/__tests__/data-import-export.test.ts:197)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:197` calls `GET /data/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d7d1528b3036c5b", "name": "Dangling fetch: GET /data/jobs?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:204)", "shortDescription": {"text": "Dangling fetch: GET /data/jobs?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:204)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:204` calls `GET /data/jobs?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b101613aa652ed5c", "name": "Dangling fetch: GET /data/jobs?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:226)", "shortDescription": {"text": "Dangling fetch: GET /data/jobs?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-import-export.test.ts:226` calls `GET /data/jobs?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/data/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-32328b0798355276", "name": "Dangling fetch: DELETE /rules/rule-1 (apps/api/src/__tests__/alerts.test.ts:119)", "shortDescription": {"text": "Dangling fetch: DELETE /rules/rule-1 (apps/api/src/__tests__/alerts.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/alerts.test.ts:119` calls `DELETE /rules/rule-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rules/rule-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed30a18f620adbf9", "name": "Dangling fetch: GET /compliance/report/gdpr (apps/api/src/__tests__/compliance.test.ts:34)", "shortDescription": {"text": "Dangling fetch: GET /compliance/report/gdpr (apps/api/src/__tests__/compliance.test.ts:34)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:34` calls `GET /compliance/report/gdpr` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/report/gdpr`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa0ec39835bce1b2", "name": "Dangling fetch: GET /compliance/report/fisma (apps/api/src/__tests__/compliance.test.ts:40)", "shortDescription": {"text": "Dangling fetch: GET /compliance/report/fisma (apps/api/src/__tests__/compliance.test.ts:40)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:40` calls `GET /compliance/report/fisma` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/report/fisma`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef264a76f084f141", "name": "Dangling fetch: GET /compliance/report/gdpr (apps/api/src/__tests__/compliance.test.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /compliance/report/gdpr (apps/api/src/__tests__/compliance.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:51` calls `GET /compliance/report/gdpr` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/report/gdpr`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7020b5a44aa04d0", "name": "Dangling fetch: GET /compliance/report/hipaa (apps/api/src/__tests__/compliance.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /compliance/report/hipaa (apps/api/src/__tests__/compliance.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:63` calls `GET /compliance/report/hipaa` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/report/hipaa`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-148b7e61a7f94698", "name": "Dangling fetch: POST /compliance/dsr (apps/api/src/__tests__/compliance.test.ts:73)", "shortDescription": {"text": "Dangling fetch: POST /compliance/dsr (apps/api/src/__tests__/compliance.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:73` calls `POST /compliance/dsr` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/dsr`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a20f3e83fb4d1955", "name": "Dangling fetch: POST /compliance/dsr (apps/api/src/__tests__/compliance.test.ts:86)", "shortDescription": {"text": "Dangling fetch: POST /compliance/dsr (apps/api/src/__tests__/compliance.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:86` calls `POST /compliance/dsr` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/dsr`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a35ea901d724e7d", "name": "Dangling fetch: GET /compliance/audit-log (apps/api/src/__tests__/compliance.test.ts:103)", "shortDescription": {"text": "Dangling fetch: GET /compliance/audit-log (apps/api/src/__tests__/compliance.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:103` calls `GET /compliance/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/audit-log`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a3d3053b8d97aee1", "name": "Dangling fetch: GET /compliance/alerts (apps/api/src/__tests__/compliance.test.ts:118)", "shortDescription": {"text": "Dangling fetch: GET /compliance/alerts (apps/api/src/__tests__/compliance.test.ts:118)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:118` calls `GET /compliance/alerts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/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-d36849894e11f9a7", "name": "Dangling fetch: POST /compliance/alerts/alert-1/acknowledge (apps/api/src/__tests__/compliance.test.ts:132)", "shortDescription": {"text": "Dangling fetch: POST /compliance/alerts/alert-1/acknowledge (apps/api/src/__tests__/compliance.test.ts:132)"}, "fullDescription": {"text": "`apps/api/src/__tests__/compliance.test.ts:132` calls `POST /compliance/alerts/alert-1/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/compliance/alerts/alert-1/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e491c86fd77fb54c", "name": "Dangling fetch: PUT /sub-1 (apps/api/src/__tests__/entity-change-subscriptions.test.ts:127)", "shortDescription": {"text": "Dangling fetch: PUT /sub-1 (apps/api/src/__tests__/entity-change-subscriptions.test.ts:127)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:127` calls `PUT /sub-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sub-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a5abd798d2c8db0", "name": "Dangling fetch: PUT /nonexistent (apps/api/src/__tests__/entity-change-subscriptions.test.ts:138)", "shortDescription": {"text": "Dangling fetch: PUT /nonexistent (apps/api/src/__tests__/entity-change-subscriptions.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:138` calls `PUT /nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-074bbc496dfb77d6", "name": "Dangling fetch: DELETE /sub-1 (apps/api/src/__tests__/entity-change-subscriptions.test.ts:153)", "shortDescription": {"text": "Dangling fetch: DELETE /sub-1 (apps/api/src/__tests__/entity-change-subscriptions.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:153` calls `DELETE /sub-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sub-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf5d3c938db5fe32", "name": "Dangling fetch: DELETE /unknown (apps/api/src/__tests__/entity-change-subscriptions.test.ts:163)", "shortDescription": {"text": "Dangling fetch: DELETE /unknown (apps/api/src/__tests__/entity-change-subscriptions.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:163` calls `DELETE /unknown` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/unknown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db570ddde117ad5d", "name": "Dangling fetch: GET /sub-1/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:182)", "shortDescription": {"text": "Dangling fetch: GET /sub-1/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:182)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:182` calls `GET /sub-1/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sub-1/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-075f2b68c6a0882b", "name": "Dangling fetch: GET /unknown/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:194)", "shortDescription": {"text": "Dangling fetch: GET /unknown/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:194)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:194` calls `GET /unknown/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/unknown/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0aaf4de00486b627", "name": "Dangling fetch: GET /sub-1/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:208)", "shortDescription": {"text": "Dangling fetch: GET /sub-1/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:208)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-change-subscriptions.test.ts:208` calls `GET /sub-1/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sub-1/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4739cdc212f14cdf", "name": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:48)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:48` calls `POST /api/v1/workspace/config-from-language` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/config-from-language`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7ca28d2003863fb", "name": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:59)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:59` calls `POST /api/v1/workspace/config-from-language` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/config-from-language`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3240149b43a56f4", "name": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:70` calls `POST /api/v1/workspace/config-from-language` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/config-from-language`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a956ba36ca06d316", "name": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:84)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:84` calls `POST /api/v1/workspace/config-from-language` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/config-from-language`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b261e790e331b62b", "name": "Dangling fetch: GET /api/v1/workspace/nlp-configs (apps/api/src/__tests__/workspace-config.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/nlp-configs (apps/api/src/__tests__/workspace-config.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:98` calls `GET /api/v1/workspace/nlp-configs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/nlp-configs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d81769646c35cead", "name": "Dangling fetch: GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:105` calls `GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/nlp-configs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0845d7ebe5e585d", "name": "Dangling fetch: GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:115` calls `GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/nlp-configs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da8ee4a85af118ad", "name": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/cfg-1/approve (apps/api/src/__tests__/workspace-config.test.ts:123)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/cfg-1/approve (apps/api/src/__tests__/workspace-config.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:123` calls `PUT /api/v1/workspace/nlp-configs/cfg-1/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/nlp-configs/cfg-1/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a7d3b1e52f18eec", "name": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/missing/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/works", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/missing/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:134` calls `PUT /api/v1/workspace/nlp-configs/missing/approve?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/nlp-configs/missing/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c064601c33c99264", "name": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/cfg-1/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspa", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/cfg-1/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-config.test.ts:146` calls `PUT /api/v1/workspace/nlp-configs/cfg-1/approve?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/nlp-configs/cfg-1/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b85fae54212f28d9", "name": "Dangling fetch: GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts", "shortDescription": {"text": "Dangling fetch: GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-costs.test.ts:54` calls `GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/costs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e8a96cbf32a64eb", "name": "Dangling fetch: GET /workspaces/ws-1/costs?from=bad-date&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:6", "shortDescription": {"text": "Dangling fetch: GET /workspaces/ws-1/costs?from=bad-date&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:61)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-costs.test.ts:61` calls `GET /workspaces/ws-1/costs?from=bad-date&to=2026-06-30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/costs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fe2abac915b45b1", "name": "Dangling fetch: GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts", "shortDescription": {"text": "Dangling fetch: GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-costs.test.ts:67` calls `GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/costs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef5006a26734c6b1", "name": "Dangling fetch: GET /workspaces/ws-1/cost-breakdown?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-cost", "shortDescription": {"text": "Dangling fetch: GET /workspaces/ws-1/cost-breakdown?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-costs.test.ts:78` calls `GET /workspaces/ws-1/cost-breakdown?from=2026-01-01&to=2026-06-30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/workspaces/ws-1/cost-breakdown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fb4f722a72b0f04", "name": "Dangling fetch: GET /api/v1/entities/e1/matches (apps/api/src/__tests__/entity-reconciliation.test.ts:37)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/e1/matches (apps/api/src/__tests__/entity-reconciliation.test.ts:37)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:37` calls `GET /api/v1/entities/e1/matches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/e1/matches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04a68393710a23b1", "name": "Dangling fetch: GET /api/v1/entities/e99/matches (apps/api/src/__tests__/entity-reconciliation.test.ts:53)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/e99/matches (apps/api/src/__tests__/entity-reconciliation.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:53` calls `GET /api/v1/entities/e99/matches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/e99/matches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03cfe15249f951b6", "name": "Dangling fetch: POST /api/v1/entities/e1/suggest-reconciliation (apps/api/src/__tests__/entity-reconciliation.test.ts:60", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/e1/suggest-reconciliation (apps/api/src/__tests__/entity-reconciliation.test.ts:60)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:60` calls `POST /api/v1/entities/e1/suggest-reconciliation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/e1/suggest-reconciliation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43a8f074125f8d80", "name": "Dangling fetch: POST /api/v1/entities/e1/suggest-reconciliation (apps/api/src/__tests__/entity-reconciliation.test.ts:71", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/e1/suggest-reconciliation (apps/api/src/__tests__/entity-reconciliation.test.ts:71)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:71` calls `POST /api/v1/entities/e1/suggest-reconciliation` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/e1/suggest-reconciliation`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5104f1012d50d683", "name": "Dangling fetch: POST /api/v1/entities/e1/reconciliation-decision (apps/api/src/__tests__/entity-reconciliation.test.ts:8", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/e1/reconciliation-decision (apps/api/src/__tests__/entity-reconciliation.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:82` calls `POST /api/v1/entities/e1/reconciliation-decision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/e1/reconciliation-decision`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cdc0baf5c929b527", "name": "Dangling fetch: POST /api/v1/entities/e1/reconciliation-decision (apps/api/src/__tests__/entity-reconciliation.test.ts:9", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/e1/reconciliation-decision (apps/api/src/__tests__/entity-reconciliation.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:93` calls `POST /api/v1/entities/e1/reconciliation-decision` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/entities/e1/reconciliation-decision`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60509cfd01fa8c83", "name": "Dangling fetch: POST /api/v1/reconciliation/score (apps/api/src/__tests__/entity-reconciliation.test.ts:104)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/reconciliation/score (apps/api/src/__tests__/entity-reconciliation.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:104` calls `POST /api/v1/reconciliation/score` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/reconciliation/score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aad7bba9965e749", "name": "Dangling fetch: GET /api/v1/reconciliation/pending (apps/api/src/__tests__/entity-reconciliation.test.ts:117)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/reconciliation/pending (apps/api/src/__tests__/entity-reconciliation.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/entity-reconciliation.test.ts:117` calls `GET /api/v1/reconciliation/pending` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/reconciliation/pending`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-042e047f81ee75be", "name": "Dangling fetch: GET /mcp/auto-tools (apps/api/src/__tests__/mcp-auto-tools.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /mcp/auto-tools (apps/api/src/__tests__/mcp-auto-tools.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:75` calls `GET /mcp/auto-tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2e888e08b30bb01", "name": "Dangling fetch: POST /mcp/auto-tools/generate (apps/api/src/__tests__/mcp-auto-tools.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /mcp/auto-tools/generate (apps/api/src/__tests__/mcp-auto-tools.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:99` calls `POST /mcp/auto-tools/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/generate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a2e3cdd771e5393", "name": "Dangling fetch: POST /mcp/auto-tools/generate (apps/api/src/__tests__/mcp-auto-tools.test.ts:110)", "shortDescription": {"text": "Dangling fetch: POST /mcp/auto-tools/generate (apps/api/src/__tests__/mcp-auto-tools.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:110` calls `POST /mcp/auto-tools/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/generate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-909e3e3f70c610ac", "name": "Dangling fetch: GET /mcp/auto-tools/query-hubspot-contact/schema (apps/api/src/__tests__/mcp-auto-tools.test.ts:121)", "shortDescription": {"text": "Dangling fetch: GET /mcp/auto-tools/query-hubspot-contact/schema (apps/api/src/__tests__/mcp-auto-tools.test.ts:121)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:121` calls `GET /mcp/auto-tools/query-hubspot-contact/schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/query-hubspot-contact/schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-229a04789c6ae4ca", "name": "Dangling fetch: GET /mcp/auto-tools/unknown-tool/schema (apps/api/src/__tests__/mcp-auto-tools.test.ts:130)", "shortDescription": {"text": "Dangling fetch: GET /mcp/auto-tools/unknown-tool/schema (apps/api/src/__tests__/mcp-auto-tools.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:130` calls `GET /mcp/auto-tools/unknown-tool/schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/unknown-tool/schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-012a24d041c0459c", "name": "Dangling fetch: POST /mcp/auto-tools/query-hubspot-contact/test (apps/api/src/__tests__/mcp-auto-tools.test.ts:139)", "shortDescription": {"text": "Dangling fetch: POST /mcp/auto-tools/query-hubspot-contact/test (apps/api/src/__tests__/mcp-auto-tools.test.ts:139)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:139` calls `POST /mcp/auto-tools/query-hubspot-contact/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/query-hubspot-contact/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-21231c6d5ac46f82", "name": "Dangling fetch: POST /mcp/auto-tools/query-hubspot-contact/test (apps/api/src/__tests__/mcp-auto-tools.test.ts:150)", "shortDescription": {"text": "Dangling fetch: POST /mcp/auto-tools/query-hubspot-contact/test (apps/api/src/__tests__/mcp-auto-tools.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:150` calls `POST /mcp/auto-tools/query-hubspot-contact/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/query-hubspot-contact/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-d85dbf9de97acc8d", "name": "Dangling fetch: POST /mcp/auto-tools/version (apps/api/src/__tests__/mcp-auto-tools.test.ts:161)", "shortDescription": {"text": "Dangling fetch: POST /mcp/auto-tools/version (apps/api/src/__tests__/mcp-auto-tools.test.ts:161)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:161` calls `POST /mcp/auto-tools/version` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/version`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7d29492abb74526", "name": "Dangling fetch: POST /mcp/auto-tools/version (apps/api/src/__tests__/mcp-auto-tools.test.ts:176)", "shortDescription": {"text": "Dangling fetch: POST /mcp/auto-tools/version (apps/api/src/__tests__/mcp-auto-tools.test.ts:176)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-auto-tools.test.ts:176` calls `POST /mcp/auto-tools/version` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mcp/auto-tools/version`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7116cb4b7ac7f1ba", "name": "Dangling fetch: GET /api/v1/admin/retention-policies (apps/api/src/__tests__/retention-policies.test.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies (apps/api/src/__tests__/retention-policies.test.ts:43)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:43` calls `GET /api/v1/admin/retention-policies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa5d14da271f64e7", "name": "Dangling fetch: PUT /api/v1/admin/retention-policies/contact (apps/api/src/__tests__/retention-policies.test.ts:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/retention-policies/contact (apps/api/src/__tests__/retention-policies.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:52` calls `PUT /api/v1/admin/retention-policies/contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/contact`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c3890291667d0be1", "name": "Dangling fetch: PUT /api/v1/admin/retention-policies/contact (apps/api/src/__tests__/retention-policies.test.ts:63)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/retention-policies/contact (apps/api/src/__tests__/retention-policies.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:63` calls `PUT /api/v1/admin/retention-policies/contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/contact`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8bb7b6c1c5acc629", "name": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities (apps/api/src/__tests__/retention-policies.test.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities (apps/api/src/__tests__/retention-policies.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:74` calls `GET /api/v1/admin/retention-policies/archived-entities` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/archived-entities`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-115229513feabeb8", "name": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities?entityType=contact (apps/api/src/__tests__/retent", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities?entityType=contact (apps/api/src/__tests__/retention-policies.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:81` calls `GET /api/v1/admin/retention-policies/archived-entities?entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/archived-entities`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-baca2c654e71b211", "name": "Dangling fetch: POST /api/v1/admin/retention-policies/archived-entities/e1/restore (apps/api/src/__tests__/retention-pol", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/archived-entities/e1/restore (apps/api/src/__tests__/retention-policies.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:88` calls `POST /api/v1/admin/retention-policies/archived-entities/e1/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/archived-entities/e1/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-08e258df0ca6c1af", "name": "Dangling fetch: POST /api/v1/admin/retention-policies/entities/e1/archive (apps/api/src/__tests__/retention-policies.tes", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/entities/e1/archive (apps/api/src/__tests__/retention-policies.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:99` calls `POST /api/v1/admin/retention-policies/entities/e1/archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/entities/e1/archive`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7be4431e4f5e5596", "name": "Dangling fetch: POST /api/v1/admin/retention-policies/entities/e1/archive (apps/api/src/__tests__/retention-policies.tes", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/entities/e1/archive (apps/api/src/__tests__/retention-policies.test.ts:108)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:108` calls `POST /api/v1/admin/retention-policies/entities/e1/archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/entities/e1/archive`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-546eb5ac0ca67a99", "name": "Dangling fetch: POST /api/v1/admin/retention-policies/run-archival-job (apps/api/src/__tests__/retention-policies.test.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/run-archival-job (apps/api/src/__tests__/retention-policies.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/retention-policies.test.ts:119` calls `POST /api/v1/admin/retention-policies/run-archival-job` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/retention-policies/run-archival-job`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89c4518b04ae4a10", "name": "Dangling fetch: GET /health-scorecards/hubspot/health-score?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-sc", "shortDescription": {"text": "Dangling fetch: GET /health-scorecards/hubspot/health-score?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:48` calls `GET /health-scorecards/hubspot/health-score?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/health-score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be85cb137881167b", "name": "Dangling fetch: GET /health-scorecards/hubspot/health-score (apps/api/src/__tests__/connector-health-scorecards.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /health-scorecards/hubspot/health-score (apps/api/src/__tests__/connector-health-scorecards.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:56` calls `GET /health-scorecards/hubspot/health-score` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/health-score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0b6c14cfa6c019d", "name": "Dangling fetch: POST /health-scorecards/hubspot/sla-config (apps/api/src/__tests__/connector-health-scorecards.test.ts:7", "shortDescription": {"text": "Dangling fetch: POST /health-scorecards/hubspot/sla-config (apps/api/src/__tests__/connector-health-scorecards.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:78` calls `POST /health-scorecards/hubspot/sla-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/sla-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-3949e9bbfbf097ea", "name": "Dangling fetch: POST /health-scorecards/hubspot/sla-config (apps/api/src/__tests__/connector-health-scorecards.test.ts:9", "shortDescription": {"text": "Dangling fetch: POST /health-scorecards/hubspot/sla-config (apps/api/src/__tests__/connector-health-scorecards.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:90` calls `POST /health-scorecards/hubspot/sla-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/sla-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-3fd6f9db851e21ec", "name": "Dangling fetch: GET /health-scorecards/health-summary?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecar", "shortDescription": {"text": "Dangling fetch: GET /health-scorecards/health-summary?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:104` calls `GET /health-scorecards/health-summary?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/health-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-fc66bf18314b4d12", "name": "Dangling fetch: GET /health-scorecards/incidents?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.te", "shortDescription": {"text": "Dangling fetch: GET /health-scorecards/incidents?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:116` calls `GET /health-scorecards/incidents?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/incidents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d998c159d913988e", "name": "Dangling fetch: POST /health-scorecards/incidents/alert-1/resolve (apps/api/src/__tests__/connector-health-scorecards.te", "shortDescription": {"text": "Dangling fetch: POST /health-scorecards/incidents/alert-1/resolve (apps/api/src/__tests__/connector-health-scorecards.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:128` calls `POST /health-scorecards/incidents/alert-1/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/incidents/alert-1/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e401735548eda47", "name": "Dangling fetch: POST /health-scorecards/incidents/alert-1/resolve (apps/api/src/__tests__/connector-health-scorecards.te", "shortDescription": {"text": "Dangling fetch: POST /health-scorecards/incidents/alert-1/resolve (apps/api/src/__tests__/connector-health-scorecards.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:140` calls `POST /health-scorecards/incidents/alert-1/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/incidents/alert-1/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68096508ed00daac", "name": "Dangling fetch: GET /health-scorecards/hubspot/sla-breaches (apps/api/src/__tests__/connector-health-scorecards.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /health-scorecards/hubspot/sla-breaches (apps/api/src/__tests__/connector-health-scorecards.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:154` calls `GET /health-scorecards/hubspot/sla-breaches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/sla-breaches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3766d3e8491f31e8", "name": "Dangling fetch: POST /health-scorecards/hubspot/recovery (apps/api/src/__tests__/connector-health-scorecards.test.ts:166", "shortDescription": {"text": "Dangling fetch: POST /health-scorecards/hubspot/recovery (apps/api/src/__tests__/connector-health-scorecards.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:166` calls `POST /health-scorecards/hubspot/recovery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/recovery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e7b893e30e04f9d", "name": "Dangling fetch: POST /health-scorecards/hubspot/recovery (apps/api/src/__tests__/connector-health-scorecards.test.ts:178", "shortDescription": {"text": "Dangling fetch: POST /health-scorecards/hubspot/recovery (apps/api/src/__tests__/connector-health-scorecards.test.ts:178)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:178` calls `POST /health-scorecards/hubspot/recovery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/recovery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d055c9429cfa8f50", "name": "Dangling fetch: GET /health-scorecards/hubspot/recovery-suggestions (apps/api/src/__tests__/connector-health-scorecards.", "shortDescription": {"text": "Dangling fetch: GET /health-scorecards/hubspot/recovery-suggestions (apps/api/src/__tests__/connector-health-scorecards.test.ts:192)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health-scorecards.test.ts:192` calls `GET /health-scorecards/hubspot/recovery-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-scorecards/hubspot/recovery-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac577ade42c5e288", "name": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:47)", "shortDescription": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:47` calls `POST /federation/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18b7a1fef266fe2f", "name": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:58)", "shortDescription": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:58` calls `POST /federation/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f13e8e84883f0be", "name": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:67)", "shortDescription": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:67)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:67` calls `POST /federation/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5d65d2fc9ce27425", "name": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:76)", "shortDescription": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:76` calls `POST /federation/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5cca6199f08f020b", "name": "Dangling fetch: GET /federation/workspaces (apps/api/src/__tests__/federation.test.ts:91)", "shortDescription": {"text": "Dangling fetch: GET /federation/workspaces (apps/api/src/__tests__/federation.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:91` calls `GET /federation/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-821c5c6e28fb63ae", "name": "Dangling fetch: DELETE /federation/workspaces/ws2 (apps/api/src/__tests__/federation.test.ts:103)", "shortDescription": {"text": "Dangling fetch: DELETE /federation/workspaces/ws2 (apps/api/src/__tests__/federation.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:103` calls `DELETE /federation/workspaces/ws2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/workspaces/ws2`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-936c83401c650827", "name": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:115)", "shortDescription": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:115` calls `POST /federation/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74705e83af1538b4", "name": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:127)", "shortDescription": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:127)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:127` calls `POST /federation/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9b47738bca04aea", "name": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:136)", "shortDescription": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:136)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:136` calls `POST /federation/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c590243381ebd19e", "name": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:145)", "shortDescription": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:145` calls `POST /federation/query` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/query`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01cfb08304af79b7", "name": "Dangling fetch: GET /federation/audit (apps/api/src/__tests__/federation.test.ts:156)", "shortDescription": {"text": "Dangling fetch: GET /federation/audit (apps/api/src/__tests__/federation.test.ts:156)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:156` calls `GET /federation/audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-300119faffc19163", "name": "Dangling fetch: GET /federation/audit?limit=10 (apps/api/src/__tests__/federation.test.ts:166)", "shortDescription": {"text": "Dangling fetch: GET /federation/audit?limit=10 (apps/api/src/__tests__/federation.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/federation.test.ts:166` calls `GET /federation/audit?limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/federation/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-358ff155ffd3e953", "name": "Dangling fetch: GET /entities/hubspot:contact:1/lineage (apps/api/src/__tests__/data-lineage.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage (apps/api/src/__tests__/data-lineage.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:66` calls `GET /entities/hubspot:contact:1/lineage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40ea80654a8ac8f6", "name": "Dangling fetch: GET /entities/unknown:1/lineage (apps/api/src/__tests__/data-lineage.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /entities/unknown:1/lineage (apps/api/src/__tests__/data-lineage.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:75` calls `GET /entities/unknown:1/lineage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/unknown:1/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd9cc4de36a8d0fd", "name": "Dangling fetch: GET /entities/e1/lineage (apps/api/src/__tests__/data-lineage.test.ts:81)", "shortDescription": {"text": "Dangling fetch: GET /entities/e1/lineage (apps/api/src/__tests__/data-lineage.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:81` calls `GET /entities/e1/lineage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/e1/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d9f3f4456e211aa", "name": "Dangling fetch: GET /entities/hubspot:contact:1/lineage-graph (apps/api/src/__tests__/data-lineage.test.ts:89)", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage-graph (apps/api/src/__tests__/data-lineage.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:89` calls `GET /entities/hubspot:contact:1/lineage-graph` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1/lineage-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-5b14e01de16f0d1a", "name": "Dangling fetch: GET /entities/e1/lineage-graph (apps/api/src/__tests__/data-lineage.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /entities/e1/lineage-graph (apps/api/src/__tests__/data-lineage.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:98` calls `GET /entities/e1/lineage-graph` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/e1/lineage-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-f5a42803112ee788", "name": "Dangling fetch: GET /entities/hubspot:contact:1/impact (apps/api/src/__tests__/data-lineage.test.ts:106)", "shortDescription": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/impact (apps/api/src/__tests__/data-lineage.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:106` calls `GET /entities/hubspot:contact:1/impact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/hubspot/<p>:1/impact`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b11fe4d93aaafd09", "name": "Dangling fetch: GET /entities/e1/impact (apps/api/src/__tests__/data-lineage.test.ts:115)", "shortDescription": {"text": "Dangling fetch: GET /entities/e1/impact (apps/api/src/__tests__/data-lineage.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/data-lineage.test.ts:115` calls `GET /entities/e1/impact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/entities/e1/impact`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbf96afb7bb4a23a", "name": "Dangling fetch: GET /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:41)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:41` calls `GET /api/v1/connectors/hubspot/event-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/hubspot/event-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-9b10fe23051c892b", "name": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:53)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:53` calls `PUT /api/v1/connectors/hubspot/event-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/hubspot/event-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-b35041e7f99ded92", "name": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:64)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:64` calls `PUT /api/v1/connectors/hubspot/event-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/hubspot/event-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-f2a199538e6554a0", "name": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:73)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:73` calls `PUT /api/v1/connectors/hubspot/event-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/hubspot/event-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-90143bd6a56a240d", "name": "Dangling fetch: POST /api/v1/connectors/hubspot/events (apps/api/src/__tests__/event-streams.test.ts:84)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/hubspot/events (apps/api/src/__tests__/event-streams.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:84` calls `POST /api/v1/connectors/hubspot/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/hubspot/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf875a7929679de1", "name": "Dangling fetch: POST /api/v1/connectors/hubspot/events (apps/api/src/__tests__/event-streams.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/hubspot/events (apps/api/src/__tests__/event-streams.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:102` calls `POST /api/v1/connectors/hubspot/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connectors/hubspot/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8bc937d502f209c8", "name": "Dangling fetch: GET /api/v1/events/audit (apps/api/src/__tests__/event-streams.test.ts:113)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/events/audit (apps/api/src/__tests__/event-streams.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:113` calls `GET /api/v1/events/audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/events/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8d8f8216699b378", "name": "Dangling fetch: POST /api/v1/events/evt-1/retry (apps/api/src/__tests__/event-streams.test.ts:126)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/events/evt-1/retry (apps/api/src/__tests__/event-streams.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:126` calls `POST /api/v1/events/evt-1/retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/events/evt-1/retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-574c8985016f8b81", "name": "Dangling fetch: GET /api/v1/events/pending-retry (apps/api/src/__tests__/event-streams.test.ts:138)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/events/pending-retry (apps/api/src/__tests__/event-streams.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/event-streams.test.ts:138` calls `GET /api/v1/events/pending-retry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/events/pending-retry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f674a23677922fab", "name": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality (apps/api/src/__tests__/admin-sync-quality.test.ts:45)", "shortDescription": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality (apps/api/src/__tests__/admin-sync-quality.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:45` calls `GET /admin/connectors/${CONNECTOR}/quality` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0c9931ef65975cad", "name": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.", "shortDescription": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:50)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:50` calls `GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ebec5acef64cfef", "name": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=14 (apps/api/src/__tests__/admin", "shortDescription": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=14 (apps/api/src/__tests__/admin-sync-quality.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:57` calls `GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e6f7b804e5d9c7f", "name": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.", "shortDescription": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:62` calls `GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b25a2f8c7c211da", "name": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.", "shortDescription": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:68` calls `GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-951e86c24a5fb01a", "name": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=abc (apps/api/src/__tests__/admi", "shortDescription": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=abc (apps/api/src/__tests__/admin-sync-quality.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:73` calls `GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36296b3ef65fcb0c", "name": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure (apps/api/src/__tests__/admin-sync-quality.test.ts", "shortDescription": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure (apps/api/src/__tests__/admin-sync-quality.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:88` calls `POST /admin/connectors/${CONNECTOR}/quality/configure` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality/configure`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a27fb3a15e4182db", "name": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sy", "shortDescription": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:97` calls `POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality/configure`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9671afa3b4eb70a3", "name": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sy", "shortDescription": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:111` calls `POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality/configure`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0e233cf141d623f", "name": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sy", "shortDescription": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:127)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:127` calls `POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality/configure`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d63bfb632da52f48", "name": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sy", "shortDescription": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-sync-quality.test.ts:140` calls `POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/connectors/<p>/quality/configure`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e76129176e647029", "name": "Dangling fetch: GET /admin/vector-health (apps/api/src/__tests__/vector-health.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-health (apps/api/src/__tests__/vector-health.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:59` calls `GET /admin/vector-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-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-9542d43c7697ba00", "name": "Dangling fetch: GET /admin/vector-health?workspaceId=ws-1 (apps/api/src/__tests__/vector-health.test.ts:65)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-health?workspaceId=ws-1 (apps/api/src/__tests__/vector-health.test.ts:65)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:65` calls `GET /admin/vector-health?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-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-d61a2f0c18cb81df", "name": "Dangling fetch: GET /admin/vector-health?workspaceId=ws-empty (apps/api/src/__tests__/vector-health.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /admin/vector-health?workspaceId=ws-empty (apps/api/src/__tests__/vector-health.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:75` calls `GET /admin/vector-health?workspaceId=ws-empty` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-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-b0d47b5a262a56bc", "name": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:87)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:87)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:87` calls `POST /admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-health/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-5294cd190385be0b", "name": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:97)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:97` calls `POST /admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-health/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-a0241be424ca71fc", "name": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:107)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:107` calls `POST /admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-health/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-788e8cff992e75a8", "name": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:117)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:117` calls `POST /admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-health/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-4f9ed65f2672456d", "name": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:129)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:129)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:129` calls `POST /admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-health/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-1d1ff8b765eb28cd", "name": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:141)", "shortDescription": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/vector-health.test.ts:141` calls `POST /admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/vector-health/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-2745c9d3e7ae164f", "name": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:57)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:57` calls `POST /context-summarization/summarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/summarize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c3787fed2c651f4", "name": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:69)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:69` calls `POST /context-summarization/summarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/summarize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ee2a6392b85199b", "name": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:78)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:78` calls `POST /context-summarization/summarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/summarize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed972129cdcf1c89", "name": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:87)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:87)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:87` calls `POST /context-summarization/summarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/summarize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d92df2d084dbda1", "name": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:96)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:96)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:96` calls `POST /context-summarization/summarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/summarize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7baffdf2de690823", "name": "Dangling fetch: GET /context-summarization/metrics (apps/api/src/__tests__/context-summarization.test.ts:107)", "shortDescription": {"text": "Dangling fetch: GET /context-summarization/metrics (apps/api/src/__tests__/context-summarization.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:107` calls `GET /context-summarization/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/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-7a85c8bb6967e928", "name": "Dangling fetch: POST /context-summarization/metrics/track (apps/api/src/__tests__/context-summarization.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/metrics/track (apps/api/src/__tests__/context-summarization.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:119` calls `POST /context-summarization/metrics/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/metrics/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d682dabc6378fc2", "name": "Dangling fetch: POST /context-summarization/metrics/track (apps/api/src/__tests__/context-summarization.test.ts:130)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/metrics/track (apps/api/src/__tests__/context-summarization.test.ts:130)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:130` calls `POST /context-summarization/metrics/track` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/metrics/track`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a362e7d11ec4424", "name": "Dangling fetch: POST /context-summarization/classify-intent (apps/api/src/__tests__/context-summarization.test.ts:141)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/classify-intent (apps/api/src/__tests__/context-summarization.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:141` calls `POST /context-summarization/classify-intent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/classify-intent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f9f0ee504c6fab0", "name": "Dangling fetch: POST /context-summarization/classify-intent (apps/api/src/__tests__/context-summarization.test.ts:152)", "shortDescription": {"text": "Dangling fetch: POST /context-summarization/classify-intent (apps/api/src/__tests__/context-summarization.test.ts:152)"}, "fullDescription": {"text": "`apps/api/src/__tests__/context-summarization.test.ts:152` calls `POST /context-summarization/classify-intent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/context-summarization/classify-intent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c41b520187374f2", "name": "Dangling fetch: GET /cache/stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:27)", "shortDescription": {"text": "Dangling fetch: GET /cache/stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:27)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:27` calls `GET /cache/stats?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-b5ac54b456e26978", "name": "Dangling fetch: GET /cache/stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:42)", "shortDescription": {"text": "Dangling fetch: GET /cache/stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:42)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:42` calls `GET /cache/stats?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-b46ddeb53267a89d", "name": "Dangling fetch: GET /cache/stats?workspaceId=ws-1&entityType=deal (apps/api/src/__tests__/cache-optimization.test.ts:50)", "shortDescription": {"text": "Dangling fetch: GET /cache/stats?workspaceId=ws-1&entityType=deal (apps/api/src/__tests__/cache-optimization.test.ts:50)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:50` calls `GET /cache/stats?workspaceId=ws-1&entityType=deal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-da874bcb379de796", "name": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-optimization.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-optimization.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:56` calls `GET /cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/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-5c070aa3783bef25", "name": "Dangling fetch: GET /cache/dependencies/abc123?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /cache/dependencies/abc123?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:68` calls `GET /cache/dependencies/abc123?workspaceId=ws-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/dependencies/abc123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-32fe6d765ef6f12c", "name": "Dangling fetch: GET /cache/dependencies/q1 (apps/api/src/__tests__/cache-optimization.test.ts:78)", "shortDescription": {"text": "Dangling fetch: GET /cache/dependencies/q1 (apps/api/src/__tests__/cache-optimization.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:78` calls `GET /cache/dependencies/q1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/dependencies/q1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9309e0ad6df789af", "name": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:95)", "shortDescription": {"text": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:95` calls `POST /cache/prefetch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/prefetch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-361ec388dddb4725", "name": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:107)", "shortDescription": {"text": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:107)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:107` calls `POST /cache/prefetch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/prefetch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8943a84462a0a13a", "name": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:117)", "shortDescription": {"text": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:117` calls `POST /cache/prefetch` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/prefetch`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b34020b8848b0992", "name": "Dangling fetch: DELETE /cache/entries/q-abc (apps/api/src/__tests__/cache-optimization.test.ts:131)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/entries/q-abc (apps/api/src/__tests__/cache-optimization.test.ts:131)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:131` calls `DELETE /cache/entries/q-abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/entries/q-abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75c495cdde361c1f", "name": "Dangling fetch: DELETE /cache/entries/q-abc (apps/api/src/__tests__/cache-optimization.test.ts:143)", "shortDescription": {"text": "Dangling fetch: DELETE /cache/entries/q-abc (apps/api/src/__tests__/cache-optimization.test.ts:143)"}, "fullDescription": {"text": "`apps/api/src/__tests__/cache-optimization.test.ts:143` calls `DELETE /cache/entries/q-abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/entries/q-abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-da7bd44848c7a539", "name": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:53)", "shortDescription": {"text": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:53` calls `POST /transformations/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f3bf7f10782c485", "name": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:70)", "shortDescription": {"text": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:70` calls `POST /transformations/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8fbbbe20098fe2e0", "name": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:82)", "shortDescription": {"text": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:82` calls `POST /transformations/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20d03c2fc8e82f41", "name": "Dangling fetch: GET /transformations/rules (apps/api/src/__tests__/transformations.test.ts:94)", "shortDescription": {"text": "Dangling fetch: GET /transformations/rules (apps/api/src/__tests__/transformations.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:94` calls `GET /transformations/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9992e2c3e70be139", "name": "Dangling fetch: GET /transformations/rules?connectorId=hubspot&entityType=contact (apps/api/src/__tests__/transformation", "shortDescription": {"text": "Dangling fetch: GET /transformations/rules?connectorId=hubspot&entityType=contact (apps/api/src/__tests__/transformations.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:102` calls `GET /transformations/rules?connectorId=hubspot&entityType=contact` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25d3cc06ab8163ec", "name": "Dangling fetch: DELETE /transformations/rules/r-uuid (apps/api/src/__tests__/transformations.test.ts:110)", "shortDescription": {"text": "Dangling fetch: DELETE /transformations/rules/r-uuid (apps/api/src/__tests__/transformations.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:110` calls `DELETE /transformations/rules/r-uuid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/rules/r-uuid`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc7b1e2c327c3387", "name": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:119` calls `POST /transformations/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/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-ddfd9d93a860e3c8", "name": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:136)", "shortDescription": {"text": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:136)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:136` calls `POST /transformations/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/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-3a078cbcfdeed94f", "name": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:154)", "shortDescription": {"text": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/transformations.test.ts:154` calls `POST /transformations/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/transformations/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-733b026f5d5675a0", "name": "Dangling fetch: GET /plans/plan-1 (apps/api/src/__tests__/query-execution-plans.test.ts:111)", "shortDescription": {"text": "Dangling fetch: GET /plans/plan-1 (apps/api/src/__tests__/query-execution-plans.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:111` calls `GET /plans/plan-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/plan-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38f87c7c0d5d2eeb", "name": "Dangling fetch: GET /plans/nonexistent (apps/api/src/__tests__/query-execution-plans.test.ts:124)", "shortDescription": {"text": "Dangling fetch: GET /plans/nonexistent (apps/api/src/__tests__/query-execution-plans.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:124` calls `GET /plans/nonexistent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d5023c0ec2db96b8", "name": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:138)", "shortDescription": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:138)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:138` calls `POST /plans/plan-1/rerun` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/plan-1/rerun`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0786d21624f405cf", "name": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:157)", "shortDescription": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:157)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:157` calls `POST /plans/plan-1/rerun` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/plan-1/rerun`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56b09ff57364f5a8", "name": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:170)", "shortDescription": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:170` calls `POST /plans/plan-1/rerun` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/plan-1/rerun`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-60f9f6711d1db561", "name": "Dangling fetch: POST /plans/nonexistent/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:184)", "shortDescription": {"text": "Dangling fetch: POST /plans/nonexistent/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:184)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:184` calls `POST /plans/nonexistent/rerun` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/nonexistent/rerun`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f12424846e106b5a", "name": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:198)", "shortDescription": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:198)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-execution-plans.test.ts:198` calls `POST /plans/plan-1/rerun` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/plans/plan-1/rerun`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8965c29051f75411", "name": "Dangling fetch: GET /cache/clusters (apps/api/src/__tests__/query-clustering.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /cache/clusters (apps/api/src/__tests__/query-clustering.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:63` calls `GET /cache/clusters` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4236abb5e09d61b0", "name": "Dangling fetch: GET /cache/clusters?days=14 (apps/api/src/__tests__/query-clustering.test.ts:74)", "shortDescription": {"text": "Dangling fetch: GET /cache/clusters?days=14 (apps/api/src/__tests__/query-clustering.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:74` calls `GET /cache/clusters?days=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c76bd7bd4bd34de8", "name": "Dangling fetch: GET /cache/clusters/ws1-cluster-0 (apps/api/src/__tests__/query-clustering.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /cache/clusters/ws1-cluster-0 (apps/api/src/__tests__/query-clustering.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:83` calls `GET /cache/clusters/ws1-cluster-0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/clusters/ws1-cluster-0`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e9b8d08a06549f3", "name": "Dangling fetch: GET /cache/clusters/does-not-exist (apps/api/src/__tests__/query-clustering.test.ts:92)", "shortDescription": {"text": "Dangling fetch: GET /cache/clusters/does-not-exist (apps/api/src/__tests__/query-clustering.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:92` calls `GET /cache/clusters/does-not-exist` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/clusters/does-not-exist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0631b9674cac5c8", "name": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:101)", "shortDescription": {"text": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:101` calls `POST /cache/assign-ttl` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/assign-ttl`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f5aa1bf7190352b", "name": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:113)", "shortDescription": {"text": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:113` calls `POST /cache/assign-ttl` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/assign-ttl`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31ea43901f6c7a96", "name": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:122)", "shortDescription": {"text": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:122` calls `POST /cache/assign-ttl` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/assign-ttl`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5303a91a020e1df9", "name": "Dangling fetch: POST /cache/invalidate (apps/api/src/__tests__/query-clustering.test.ts:133)", "shortDescription": {"text": "Dangling fetch: POST /cache/invalidate (apps/api/src/__tests__/query-clustering.test.ts:133)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:133` calls `POST /cache/invalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/invalidate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a050a38237e4824", "name": "Dangling fetch: POST /cache/invalidate (apps/api/src/__tests__/query-clustering.test.ts:145)", "shortDescription": {"text": "Dangling fetch: POST /cache/invalidate (apps/api/src/__tests__/query-clustering.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-clustering.test.ts:145` calls `POST /cache/invalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/cache/invalidate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f2160f93c21efb9", "name": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot (apps/api/src/__tests__/workspace-benchmarking.test.ts:46)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot (apps/api/src/__tests__/workspace-benchmarking.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:46` calls `GET /api/v1/workspace/benchmark-snapshot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-21008b03949858c9", "name": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benc", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:53` calls `GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bd6cf2f221e20a5", "name": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benc", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:62` calls `GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10a989652f102776", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison (apps/api/src/__tests__/workspace-benchmarking.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison (apps/api/src/__tests__/workspace-benchmarking.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:70` calls `GET /api/v1/workspace/benchmarks/peer-comparison` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c64f6223110c848", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE} (apps/api/src/__tests__/worksp", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:77` calls `GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a5d520eef223aca2", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=saas&companySize=smb ", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=saas&companySize=smb (apps/api/src/__tests__/workspace-benchmarking.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:84` calls `GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=saas&companySize=smb` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f0030503046e2ca", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&companySize=giant (apps/api/sr", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&companySize=giant (apps/api/src/__tests__/workspace-benchmarking.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:94` calls `GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&companySize=giant` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc7b08990c75a6ee", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:103)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:103` calls `GET /api/v1/workspace/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9001ee460a60fdb2", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/settings?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-ben", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/settings?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:112` calls `GET /api/v1/workspace/benchmarks/settings?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-245daf91980bae6f", "name": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:122)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:122` calls `PUT /api/v1/workspace/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53a21534631daa54", "name": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:134)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:134` calls `PUT /api/v1/workspace/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bcba8781257bf196", "name": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:148)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:148)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:148` calls `POST /api/v1/workspace/benchmarks/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73ad7b2cbede682c", "name": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:159)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:159)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:159` calls `POST /api/v1/workspace/benchmarks/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3703cf56784feb88", "name": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:172)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:172)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-benchmarking.test.ts:172` calls `POST /api/v1/workspace/benchmarks/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workspace/benchmarks/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fdbd526d92755735", "name": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:79)", "shortDescription": {"text": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:79` calls `GET /sync-diagnostics/hs-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-diagnostics/hs-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f0125465479d1ed", "name": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:89)", "shortDescription": {"text": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:89` calls `GET /sync-diagnostics/hs-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-diagnostics/hs-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-043d19c9fc046642", "name": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:98` calls `GET /sync-diagnostics/hs-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-diagnostics/hs-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dbc7c94616a8ec33", "name": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:108)", "shortDescription": {"text": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:108)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:108` calls `POST /sync-diagnostics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-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-2868fba6c1e8aff8", "name": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:123` calls `POST /sync-diagnostics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-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-2c682020c4a65af1", "name": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:134` calls `POST /sync-diagnostics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-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-0fd247718b073981", "name": "Dangling fetch: POST /sync-diagnostics/d1/resolve (apps/api/src/__tests__/sync-diagnostics.test.ts:148)", "shortDescription": {"text": "Dangling fetch: POST /sync-diagnostics/d1/resolve (apps/api/src/__tests__/sync-diagnostics.test.ts:148)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:148` calls `POST /sync-diagnostics/d1/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-diagnostics/d1/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb329768c7a7057b", "name": "Dangling fetch: POST /sync-diagnostics/d1/resolve (apps/api/src/__tests__/sync-diagnostics.test.ts:158)", "shortDescription": {"text": "Dangling fetch: POST /sync-diagnostics/d1/resolve (apps/api/src/__tests__/sync-diagnostics.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sync-diagnostics.test.ts:158` calls `POST /sync-diagnostics/d1/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sync-diagnostics/d1/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d19ad82291178ef0", "name": "Dangling fetch: GET /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:65)", "shortDescription": {"text": "Dangling fetch: GET /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:65)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:65` calls `GET /query-context/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a267e071f17ac750", "name": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:75)", "shortDescription": {"text": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:75` calls `POST /query-context/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c6408d85f26fff1", "name": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:85)", "shortDescription": {"text": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:85` calls `POST /query-context/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc487e0ca953b984", "name": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:94)", "shortDescription": {"text": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:94` calls `POST /query-context/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8dfc18711a1dab08", "name": "Dangling fetch: POST /query-context/versions/1.0/deprecate (apps/api/src/__tests__/mcp-tools.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /query-context/versions/1.0/deprecate (apps/api/src/__tests__/mcp-tools.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:106` calls `POST /query-context/versions/1.0/deprecate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions/1.0/deprecate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fac132091b090b77", "name": "Dangling fetch: POST /query-context/versions/1.0/deprecate (apps/api/src/__tests__/mcp-tools.test.ts:114)", "shortDescription": {"text": "Dangling fetch: POST /query-context/versions/1.0/deprecate (apps/api/src/__tests__/mcp-tools.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:114` calls `POST /query-context/versions/1.0/deprecate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions/1.0/deprecate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59e13bd6c7b1b4c2", "name": "Dangling fetch: DELETE /query-context/versions/1.0 (apps/api/src/__tests__/mcp-tools.test.ts:125)", "shortDescription": {"text": "Dangling fetch: DELETE /query-context/versions/1.0 (apps/api/src/__tests__/mcp-tools.test.ts:125)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:125` calls `DELETE /query-context/versions/1.0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/versions/1.0`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-364e79aea94ac1d5", "name": "Dangling fetch: GET /query-context/resolve?clientVersion=1.2 (apps/api/src/__tests__/mcp-tools.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /query-context/resolve?clientVersion=1.2 (apps/api/src/__tests__/mcp-tools.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:137` calls `GET /query-context/resolve?clientVersion=1.2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef348e53b80534be", "name": "Dangling fetch: GET /unknown-tool/resolve (apps/api/src/__tests__/mcp-tools.test.ts:145)", "shortDescription": {"text": "Dangling fetch: GET /unknown-tool/resolve (apps/api/src/__tests__/mcp-tools.test.ts:145)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:145` calls `GET /unknown-tool/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/unknown-tool/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f894fb4cab32beb8", "name": "Dangling fetch: GET /query-context/sdk-stub?language=typescript (apps/api/src/__tests__/mcp-tools.test.ts:155)", "shortDescription": {"text": "Dangling fetch: GET /query-context/sdk-stub?language=typescript (apps/api/src/__tests__/mcp-tools.test.ts:155)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:155` calls `GET /query-context/sdk-stub?language=typescript` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/query-context/sdk-stub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70bcbc9a0f18825b", "name": "Dangling fetch: GET /missing-tool/sdk-stub (apps/api/src/__tests__/mcp-tools.test.ts:163)", "shortDescription": {"text": "Dangling fetch: GET /missing-tool/sdk-stub (apps/api/src/__tests__/mcp-tools.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/mcp-tools.test.ts:163` calls `GET /missing-tool/sdk-stub` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/missing-tool/sdk-stub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d5f6cff9d710d34", "name": "Dangling fetch: GET /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:46)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:46` calls `GET /api/v1/workflow-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ef3749dfe874318", "name": "Dangling fetch: GET /api/v1/workflow-templates?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workflow-templates?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:53)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:53` calls `GET /api/v1/workflow-templates?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-75901cb90da607b0", "name": "Dangling fetch: GET /api/v1/workflow-templates?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workflow-templates?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:63` calls `GET /api/v1/workflow-templates?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0a8c1baf5c41bc5", "name": "Dangling fetch: GET /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:71)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:71)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:71` calls `GET /api/v1/workflow-templates/${TMPL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-ebf178411f0ef25f", "name": "Dangling fetch: GET /api/v1/workflow-templates/missing?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templat", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workflow-templates/missing?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:78` calls `GET /api/v1/workflow-templates/missing?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ad756aafa758abfc", "name": "Dangling fetch: GET /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-temp", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:85` calls `GET /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-34804d6ad591273f", "name": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:95)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:95)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:95` calls `POST /api/v1/workflow-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e48ee2910ce24fca", "name": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:106` calls `POST /api/v1/workflow-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15611d8d3c764bf8", "name": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:126)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:126` calls `POST /api/v1/workflow-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2c64baafce701f5", "name": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:142)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:142)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:142` calls `PUT /api/v1/workflow-templates/${TMPL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-07472122c969cd34", "name": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:153)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:153)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:153` calls `PUT /api/v1/workflow-templates/${TMPL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-156454bca0b832d1", "name": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:165)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:165)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:165` calls `PUT /api/v1/workflow-templates/${TMPL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-975ca85a519c61fc", "name": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:179)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:179)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:179` calls `DELETE /api/v1/workflow-templates/${TMPL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-00ff001dba61f02c", "name": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-t", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:186)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:186` calls `DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-47677c2d7f83ad09", "name": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-t", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:193)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workflow-templates.test.ts:193` calls `DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/workflow-templates/<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-2ce0cad14cfdda7d", "name": "Dangling fetch: GET /providers/registry (apps/api/src/__tests__/providers.test.ts:39)", "shortDescription": {"text": "Dangling fetch: GET /providers/registry (apps/api/src/__tests__/providers.test.ts:39)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:39` calls `GET /providers/registry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers/registry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3db3e18f77b05242", "name": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:49)", "shortDescription": {"text": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:49` calls `GET /providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-774a1c3b3e8e4cc3", "name": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:58)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:58` calls `GET /providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4b79e580811de15", "name": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:70)", "shortDescription": {"text": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:70` calls `GET /providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc0e826c5ebef247", "name": "Dangling fetch: PUT /providers/not-a-provider (apps/api/src/__tests__/providers.test.ts:78)", "shortDescription": {"text": "Dangling fetch: PUT /providers/not-a-provider (apps/api/src/__tests__/providers.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:78` calls `PUT /providers/not-a-provider` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers/not-a-provider`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b1dbbf080c97c7c", "name": "Dangling fetch: PUT /providers/anthropic (apps/api/src/__tests__/providers.test.ts:90)", "shortDescription": {"text": "Dangling fetch: PUT /providers/anthropic (apps/api/src/__tests__/providers.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:90` calls `PUT /providers/anthropic` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers/anthropic`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2bd06d579c6e813", "name": "Dangling fetch: POST /providers/estimate-cost (apps/api/src/__tests__/providers.test.ts:104)", "shortDescription": {"text": "Dangling fetch: POST /providers/estimate-cost (apps/api/src/__tests__/providers.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:104` calls `POST /providers/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97c8f6dbf27cfc6b", "name": "Dangling fetch: POST /providers/estimate-cost (apps/api/src/__tests__/providers.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /providers/estimate-cost (apps/api/src/__tests__/providers.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/__tests__/providers.test.ts:119` calls `POST /providers/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/providers/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-594fb5c63ca4589f", "name": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:46)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:46` calls `GET /api/v1/marketplace/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7618ad8c790de631", "name": "Dangling fetch: GET /api/v1/marketplace/connectors?category=crm&minRating=4 (apps/api/src/__tests__/marketplace.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors?category=crm&minRating=4 (apps/api/src/__tests__/marketplace.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:56` calls `GET /api/v1/marketplace/connectors?category=crm&minRating=4` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7df7a4f5e57285b0", "name": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:63` calls `GET /api/v1/marketplace/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9415dcb6ba02cae4", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/install (apps/api/src/__tests__/marketplace.test.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/install (apps/api/src/__tests__/marketplace.test.ts:74)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:74` calls `POST /api/v1/marketplace/connectors/hubspot/install` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/hubspot/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-1fb0166c5cbe6942", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/unknown/install (apps/api/src/__tests__/marketplace.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/unknown/install (apps/api/src/__tests__/marketplace.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:83` calls `POST /api/v1/marketplace/connectors/unknown/install` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/unknown/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-d9c595d57d8c4cd9", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/rate (apps/api/src/__tests__/marketplace.test.ts:94)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/rate (apps/api/src/__tests__/marketplace.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:94` calls `POST /api/v1/marketplace/connectors/hubspot/rate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/hubspot/rate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f75ecb14189e660", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/rate (apps/api/src/__tests__/marketplace.test.ts:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/rate (apps/api/src/__tests__/marketplace.test.ts:106)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:106` calls `POST /api/v1/marketplace/connectors/hubspot/rate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/hubspot/rate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee639623aeaccb79", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/unknown/rate (apps/api/src/__tests__/marketplace.test.ts:117)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/unknown/rate (apps/api/src/__tests__/marketplace.test.ts:117)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:117` calls `POST /api/v1/marketplace/connectors/unknown/rate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/unknown/rate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-392a1c494d5bc4be", "name": "Dangling fetch: GET /api/v1/marketplace/connectors/hubspot/ratings (apps/api/src/__tests__/marketplace.test.ts:132)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/hubspot/ratings (apps/api/src/__tests__/marketplace.test.ts:132)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:132` calls `GET /api/v1/marketplace/connectors/hubspot/ratings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/hubspot/ratings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2626575169fa8a88", "name": "Dangling fetch: POST /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:146)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:146` calls `POST /api/v1/marketplace/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-769b3b0384ea35d4", "name": "Dangling fetch: POST /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:156)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:156)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:156` calls `POST /api/v1/marketplace/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c0d19f3bd44e712", "name": "Dangling fetch: PUT /api/v1/marketplace/connectors/hubspot/curate (apps/api/src/__tests__/marketplace.test.ts:171)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/marketplace/connectors/hubspot/curate (apps/api/src/__tests__/marketplace.test.ts:171)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:171` calls `PUT /api/v1/marketplace/connectors/hubspot/curate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/hubspot/curate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6e5605fe07c7a91", "name": "Dangling fetch: PUT /api/v1/marketplace/connectors/hubspot/curate (apps/api/src/__tests__/marketplace.test.ts:183)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/marketplace/connectors/hubspot/curate (apps/api/src/__tests__/marketplace.test.ts:183)"}, "fullDescription": {"text": "`apps/api/src/__tests__/marketplace.test.ts:183` calls `PUT /api/v1/marketplace/connectors/hubspot/curate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/marketplace/connectors/hubspot/curate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-854eec79ae446a52", "name": "Dangling fetch: GET /freshness/entities/missing (apps/api/src/__tests__/freshness-tracking.test.ts:45)", "shortDescription": {"text": "Dangling fetch: GET /freshness/entities/missing (apps/api/src/__tests__/freshness-tracking.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:45` calls `GET /freshness/entities/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/entities/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-341f6ac70be21d3b", "name": "Dangling fetch: GET /freshness/entities/hubspot:contact:001 (apps/api/src/__tests__/freshness-tracking.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /freshness/entities/hubspot:contact:001 (apps/api/src/__tests__/freshness-tracking.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:66` calls `GET /freshness/entities/hubspot:contact:001` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/entities/hubspot/<p>:001`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e1b0fe29ea6166ce", "name": "Dangling fetch: GET /freshness/entities/any (apps/api/src/__tests__/freshness-tracking.test.ts:78)", "shortDescription": {"text": "Dangling fetch: GET /freshness/entities/any (apps/api/src/__tests__/freshness-tracking.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:78` calls `GET /freshness/entities/any` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/entities/any`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c1c8cd8855998cf", "name": "Dangling fetch: GET /freshness/metrics/hubspot (apps/api/src/__tests__/freshness-tracking.test.ts:93)", "shortDescription": {"text": "Dangling fetch: GET /freshness/metrics/hubspot (apps/api/src/__tests__/freshness-tracking.test.ts:93)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:93` calls `GET /freshness/metrics/hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/metrics/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3fc7163e5a015f54", "name": "Dangling fetch: GET /freshness/metrics/hubspot?intervalDays=abc (apps/api/src/__tests__/freshness-tracking.test.ts:104)", "shortDescription": {"text": "Dangling fetch: GET /freshness/metrics/hubspot?intervalDays=abc (apps/api/src/__tests__/freshness-tracking.test.ts:104)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:104` calls `GET /freshness/metrics/hubspot?intervalDays=abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/metrics/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61a591a7b2efb59c", "name": "Dangling fetch: GET /freshness/stale (apps/api/src/__tests__/freshness-tracking.test.ts:126)", "shortDescription": {"text": "Dangling fetch: GET /freshness/stale (apps/api/src/__tests__/freshness-tracking.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:126` calls `GET /freshness/stale` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/stale`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-adfb6473ac31d2b2", "name": "Dangling fetch: GET /freshness/predict/e1 (apps/api/src/__tests__/freshness-tracking.test.ts:139)", "shortDescription": {"text": "Dangling fetch: GET /freshness/predict/e1 (apps/api/src/__tests__/freshness-tracking.test.ts:139)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:139` calls `GET /freshness/predict/e1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/predict/e1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a68cd2f72f1700cf", "name": "Dangling fetch: GET /freshness/predict/e1?connectorId=hubspot (apps/api/src/__tests__/freshness-tracking.test.ts:150)", "shortDescription": {"text": "Dangling fetch: GET /freshness/predict/e1?connectorId=hubspot (apps/api/src/__tests__/freshness-tracking.test.ts:150)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:150` calls `GET /freshness/predict/e1?connectorId=hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/predict/e1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f6fbe712587d01d", "name": "Dangling fetch: GET /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:163)", "shortDescription": {"text": "Dangling fetch: GET /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:163)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:163` calls `GET /freshness/slas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/slas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-20e4cee92a98f69a", "name": "Dangling fetch: POST /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:175)", "shortDescription": {"text": "Dangling fetch: POST /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:175)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:175` calls `POST /freshness/slas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/slas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c07fd491c0725083", "name": "Dangling fetch: POST /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:189)", "shortDescription": {"text": "Dangling fetch: POST /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:189)"}, "fullDescription": {"text": "`apps/api/src/__tests__/freshness-tracking.test.ts:189` calls `POST /freshness/slas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/freshness/slas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cbdea58c0088ed9", "name": "Dangling fetch: GET /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:57)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:57` calls `GET /scim/v2/Users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae8895464f6bd53e", "name": "Dangling fetch: GET /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:70)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:70)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:70` calls `GET /scim/v2/Users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49cbb25a19a16b48", "name": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:82)", "shortDescription": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:82` calls `POST /scim/v2/Users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ccd85b338018c14", "name": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:92)", "shortDescription": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:92)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:92` calls `POST /scim/v2/Users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bffe362e10fb81b1", "name": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:103` calls `POST /scim/v2/Users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e2174fd38102758", "name": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:115)", "shortDescription": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:115` calls `POST /scim/v2/Users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c87856dddc0a2a83", "name": "Dangling fetch: GET /scim/v2/Users/missing-id (apps/api/src/__tests__/scim.test.ts:128)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/Users/missing-id (apps/api/src/__tests__/scim.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:128` calls `GET /scim/v2/Users/missing-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users/missing-id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b6f305e64a81109", "name": "Dangling fetch: GET /scim/v2/Users/user-abc123 (apps/api/src/__tests__/scim.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/Users/user-abc123 (apps/api/src/__tests__/scim.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:141` calls `GET /scim/v2/Users/user-abc123` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users/user-abc123`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39e0eabbfbb8f2a8", "name": "Dangling fetch: DELETE /scim/v2/Users/user-1 (apps/api/src/__tests__/scim.test.ts:152)", "shortDescription": {"text": "Dangling fetch: DELETE /scim/v2/Users/user-1 (apps/api/src/__tests__/scim.test.ts:152)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:152` calls `DELETE /scim/v2/Users/user-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/users/user-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04bd2fc6246ee916", "name": "Dangling fetch: GET /scim/v2/Groups (apps/api/src/__tests__/scim.test.ts:170)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/Groups (apps/api/src/__tests__/scim.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:170` calls `GET /scim/v2/Groups` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/groups`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80b5b274e31aaf76", "name": "Dangling fetch: POST /scim/v2/Groups (apps/api/src/__tests__/scim.test.ts:183)", "shortDescription": {"text": "Dangling fetch: POST /scim/v2/Groups (apps/api/src/__tests__/scim.test.ts:183)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:183` calls `POST /scim/v2/Groups` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/groups`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70e6e2e9529f18c2", "name": "Dangling fetch: GET /scim/v2/ServiceProviderConfig (apps/api/src/__tests__/scim.test.ts:195)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/ServiceProviderConfig (apps/api/src/__tests__/scim.test.ts:195)"}, "fullDescription": {"text": "`apps/api/src/__tests__/scim.test.ts:195` calls `GET /scim/v2/ServiceProviderConfig` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/scim/v2/serviceproviderconfig`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f417930e30231a32", "name": "Dangling fetch: GET /api/v1/export/osi (apps/api/src/__tests__/export.test.ts:34)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi (apps/api/src/__tests__/export.test.ts:34)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:34` calls `GET /api/v1/export/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffe9637a4cd95a10", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:43)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:43` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-300c5345424ed428", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:54)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:54` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63791d7cd711b90b", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&entityTypes=contact,deal (apps/api/src/__tests__/export.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&entityTypes=contact,deal (apps/api/src/__tests__/export.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:63` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}&entityTypes=contact,deal` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30723695b0ebb27d", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&since=${since}&until=${until} (apps/api/src/__tests__/ex", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&since=${since}&until=${until} (apps/api/src/__tests__/export.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:73` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}&since=${since}&until=${until}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c94ce005c04ede1c", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeGlossary=false (apps/api/src/__tests__/export.tes", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeGlossary=false (apps/api/src/__tests__/export.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:82` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeGlossary=false` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b66a6f7f00c16729", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeMetrics=false (apps/api/src/__tests__/export.test", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeMetrics=false (apps/api/src/__tests__/export.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:90` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeMetrics=false` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34fd9981d519daa4", "name": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:98)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:98)"}, "fullDescription": {"text": "`apps/api/src/__tests__/export.test.ts:98` calls `GET /api/v1/export/osi?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1434a6d9a8077a01", "name": "Dangling fetch: GET /api/v1/admin/connectors/resilience (apps/api/src/__tests__/admin-resilience.test.ts:44)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/resilience (apps/api/src/__tests__/admin-resilience.test.ts:44)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-resilience.test.ts:44` calls `GET /api/v1/admin/connectors/resilience` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/resilience`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2dab890d4b293d0", "name": "Dangling fetch: GET /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:56)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-resilience.test.ts:56` calls `GET /api/v1/admin/connectors/resilience/hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/resilience/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-809f675a32331eba", "name": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:69)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-resilience.test.ts:69` calls `PUT /api/v1/admin/connectors/resilience/hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/resilience/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-820556fb148aadec", "name": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:81)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-resilience.test.ts:81` calls `PUT /api/v1/admin/connectors/resilience/hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/resilience/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-559cfd067a6b10a3", "name": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:91)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:91)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-resilience.test.ts:91` calls `PUT /api/v1/admin/connectors/resilience/hubspot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/resilience/hubspot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e547cedf9777f1d", "name": "Dangling fetch: DELETE /api/v1/admin/connectors/resilience/hubspot/reset (apps/api/src/__tests__/admin-resilience.test.t", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/admin/connectors/resilience/hubspot/reset (apps/api/src/__tests__/admin-resilience.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/admin-resilience.test.ts:105` calls `DELETE /api/v1/admin/connectors/resilience/hubspot/reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/connectors/resilience/hubspot/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-a2ffe9827e4cb3a2", "name": "Dangling fetch: GET /api/v1/glossary (apps/api/src/__tests__/glossary.test.ts:44)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary (apps/api/src/__tests__/glossary.test.ts:44)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:44` calls `GET /api/v1/glossary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c9662500d898814", "name": "Dangling fetch: GET /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:52` calls `GET /api/v1/glossary?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5eb7671dbfe90351", "name": "Dangling fetch: GET /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:63` calls `GET /api/v1/glossary?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2c3f087fb7b2fe1", "name": "Dangling fetch: GET /api/v1/glossary/usage (apps/api/src/__tests__/glossary.test.ts:71)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary/usage (apps/api/src/__tests__/glossary.test.ts:71)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:71` calls `GET /api/v1/glossary/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b3dd6dc1d2e2d1e", "name": "Dangling fetch: GET /api/v1/glossary/usage?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:79)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary/usage?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:79` calls `GET /api/v1/glossary/usage?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7169d184a236f35", "name": "Dangling fetch: GET /api/v1/glossary/usage?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary/usage?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:90` calls `GET /api/v1/glossary/usage?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a7505ed40dc49d15", "name": "Dangling fetch: POST /api/v1/glossary (apps/api/src/__tests__/glossary.test.ts:100)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/glossary (apps/api/src/__tests__/glossary.test.ts:100)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:100` calls `POST /api/v1/glossary` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-913387e0ef710e28", "name": "Dangling fetch: POST /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:111)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:111)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:111` calls `POST /api/v1/glossary?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a516b6690442a2a8", "name": "Dangling fetch: POST /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:123` calls `POST /api/v1/glossary?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bbe5fa078d0e04d", "name": "Dangling fetch: GET /api/v1/glossary/ARR/history (apps/api/src/__tests__/glossary.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary/ARR/history (apps/api/src/__tests__/glossary.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:137` calls `GET /api/v1/glossary/ARR/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr/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-ef351f4fe69bf64f", "name": "Dangling fetch: GET /api/v1/glossary/ARR/history?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:148)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/glossary/ARR/history?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:148)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:148` calls `GET /api/v1/glossary/ARR/history?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr/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-00c168eb8171bbdf", "name": "Dangling fetch: PUT /api/v1/glossary/ARR/approve (apps/api/src/__tests__/glossary.test.ts:159)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/glossary/ARR/approve (apps/api/src/__tests__/glossary.test.ts:159)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:159` calls `PUT /api/v1/glossary/ARR/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9724bc55944217fd", "name": "Dangling fetch: PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:169)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:169)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:169` calls `PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91bd1ac27467630f", "name": "Dangling fetch: PUT /api/v1/glossary/UNKNOWN/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:1", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/glossary/UNKNOWN/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:181)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:181` calls `PUT /api/v1/glossary/UNKNOWN/approve?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/unknown/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56df0cf1e566ae74", "name": "Dangling fetch: PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:194)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:194)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:194` calls `PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr/approve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ae88454bbe65d54", "name": "Dangling fetch: DELETE /api/v1/glossary/ARR (apps/api/src/__tests__/glossary.test.ts:210)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/glossary/ARR (apps/api/src/__tests__/glossary.test.ts:210)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:210` calls `DELETE /api/v1/glossary/ARR` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0667733ca42d4ceb", "name": "Dangling fetch: DELETE /api/v1/glossary/NONEXISTENT?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:21", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/glossary/NONEXISTENT?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:218)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:218` calls `DELETE /api/v1/glossary/NONEXISTENT?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/nonexistent`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ef92d8c88c0ad44", "name": "Dangling fetch: DELETE /api/v1/glossary/ARR?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:226)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/glossary/ARR?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:226)"}, "fullDescription": {"text": "`apps/api/src/__tests__/glossary.test.ts:226` calls `DELETE /api/v1/glossary/ARR?workspaceId=${WORKSPACE}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/glossary/arr`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2beab0440adc6ab6", "name": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:37)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:37)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:37` calls `POST /api/v1/batch/recommend-contexts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/recommend-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b90e57f32ada99e", "name": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:48)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:48)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:48` calls `POST /api/v1/batch/recommend-contexts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/recommend-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd4e3458d438f23e", "name": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:57)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:57)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:57` calls `POST /api/v1/batch/recommend-contexts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/recommend-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abe91d96e3b2b95e", "name": "Dangling fetch: POST /api/v1/batch/analyze (apps/api/src/__tests__/batch-recommendations.test.ts:68)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/analyze (apps/api/src/__tests__/batch-recommendations.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:68` calls `POST /api/v1/batch/analyze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e45b0106ddf1525", "name": "Dangling fetch: POST /api/v1/batch/analyze (apps/api/src/__tests__/batch-recommendations.test.ts:79)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/analyze (apps/api/src/__tests__/batch-recommendations.test.ts:79)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:79` calls `POST /api/v1/batch/analyze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01f97b6137c2a799", "name": "Dangling fetch: POST /api/v1/batch/group-actions (apps/api/src/__tests__/batch-recommendations.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/group-actions (apps/api/src/__tests__/batch-recommendations.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:90` calls `POST /api/v1/batch/group-actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/group-actions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b67041794584fc2", "name": "Dangling fetch: POST /api/v1/batch/group-score (apps/api/src/__tests__/batch-recommendations.test.ts:103)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/group-score (apps/api/src/__tests__/batch-recommendations.test.ts:103)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:103` calls `POST /api/v1/batch/group-score` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/group-score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccfa133ff9cd66c6", "name": "Dangling fetch: POST /api/v1/batch/group-score (apps/api/src/__tests__/batch-recommendations.test.ts:115)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/group-score (apps/api/src/__tests__/batch-recommendations.test.ts:115)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:115` calls `POST /api/v1/batch/group-score` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/group-score`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd34119e945b99cb", "name": "Dangling fetch: GET /api/v1/batch/results/sess1 (apps/api/src/__tests__/batch-recommendations.test.ts:126)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/batch/results/sess1 (apps/api/src/__tests__/batch-recommendations.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:126` calls `GET /api/v1/batch/results/sess1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/results/sess1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a67dc2554d07c721", "name": "Dangling fetch: GET /api/v1/batch/results/missing (apps/api/src/__tests__/batch-recommendations.test.ts:141)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/batch/results/missing (apps/api/src/__tests__/batch-recommendations.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/__tests__/batch-recommendations.test.ts:141` calls `GET /api/v1/batch/results/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/batch/results/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-794180f4b7c55a6e", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:83` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-6680c5fc6fd8b094", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:99)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:99` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-aab466937a1c2873", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:112)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:112` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-5b49f4782ad35a03", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:140)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:140` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-68534144ec066a84", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:175)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:175)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:175` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-d6f533f45e5bc1bb", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:202)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:202)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:202` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-1a4cd360f7ab65b8", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:220)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:220)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:220` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-ea5e37e6dce06d3f", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:237)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:237)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:237` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-cfc04cd20805a45c", "name": "Dangling fetch: POST /api/v1/webhooks/inst-unknown/wrong-secret (apps/api/src/__tests__/webhooks.test.ts:255)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-unknown/wrong-secret (apps/api/src/__tests__/webhooks.test.ts:255)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:255` calls `POST /api/v1/webhooks/inst-unknown/wrong-secret` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-unknown/wrong-secret`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59f84539cea810e7", "name": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:267)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:267)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:267` calls `POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/inst-001/<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-9da83b698174abf7", "name": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test (apps/api/src/__tests__/webhooks.test.ts:331)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test (apps/api/src/__tests__/webhooks.test.ts:331)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:331` calls `GET /api/v1/webhooks/events?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe870a80eeb1b105", "name": "Dangling fetch: GET /api/v1/webhooks/events (apps/api/src/__tests__/webhooks.test.ts:346)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/webhooks/events (apps/api/src/__tests__/webhooks.test.ts:346)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:346` calls `GET /api/v1/webhooks/events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1cfd957aec062da", "name": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test&status=invalid (apps/api/src/__tests__/webhooks.test.ts:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test&status=invalid (apps/api/src/__tests__/webhooks.test.ts:352)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:352` calls `GET /api/v1/webhooks/events?workspaceId=ws-test&status=invalid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb00311deb118a50", "name": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test&limit=50 (apps/api/src/__tests__/webhooks.test.ts:363)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test&limit=50 (apps/api/src/__tests__/webhooks.test.ts:363)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:363` calls `GET /api/v1/webhooks/events?workspaceId=ws-test&limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61bd31334cf2664b", "name": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test (apps/api/src/__tests__/webhooks.test.ts:379)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test (apps/api/src/__tests__/webhooks.test.ts:379)"}, "fullDescription": {"text": "`apps/api/src/__tests__/webhooks.test.ts:379` calls `GET /api/v1/webhooks/events?workspaceId=ws-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/webhooks/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-438e1a367c51d149", "name": "Dangling fetch: GET /performance/stats (apps/api/src/__tests__/performance.test.ts:54)", "shortDescription": {"text": "Dangling fetch: GET /performance/stats (apps/api/src/__tests__/performance.test.ts:54)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:54` calls `GET /performance/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/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-35147579adad8693", "name": "Dangling fetch: GET /performance/stats?window=15 (apps/api/src/__tests__/performance.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /performance/stats?window=15 (apps/api/src/__tests__/performance.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:62` calls `GET /performance/stats?window=15` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/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-ddd9d457db4738f8", "name": "Dangling fetch: GET /performance/stats (apps/api/src/__tests__/performance.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /performance/stats (apps/api/src/__tests__/performance.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:68` calls `GET /performance/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/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-5d80a5fe34c07d31", "name": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:75` calls `GET /performance/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-115d17df4a9d79f2", "name": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:84)", "shortDescription": {"text": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:84)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:84` calls `GET /performance/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5257f9b9790a428f", "name": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:90)", "shortDescription": {"text": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:90` calls `GET /performance/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64e1e9550510c2ca", "name": "Dangling fetch: GET /performance/metrics (apps/api/src/__tests__/performance.test.ts:97)", "shortDescription": {"text": "Dangling fetch: GET /performance/metrics (apps/api/src/__tests__/performance.test.ts:97)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:97` calls `GET /performance/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/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-853d0d728db5db39", "name": "Dangling fetch: GET /performance/metrics (apps/api/src/__tests__/performance.test.ts:105)", "shortDescription": {"text": "Dangling fetch: GET /performance/metrics (apps/api/src/__tests__/performance.test.ts:105)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:105` calls `GET /performance/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/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-5409827c5f44b8f8", "name": "Dangling fetch: POST /performance/record (apps/api/src/__tests__/performance.test.ts:112)", "shortDescription": {"text": "Dangling fetch: POST /performance/record (apps/api/src/__tests__/performance.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:112` calls `POST /performance/record` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/record`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4652a5c91cd540c", "name": "Dangling fetch: POST /performance/record (apps/api/src/__tests__/performance.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /performance/record (apps/api/src/__tests__/performance.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/performance.test.ts:123` calls `POST /performance/record` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/performance/record`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-410a32a21cc71549", "name": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-perfo", "shortDescription": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-performance.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:59` calls `GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/performance-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-9ea284637dbc95fc", "name": "Dangling fetch: GET /connectors/conn-2/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-perfo", "shortDescription": {"text": "Dangling fetch: GET /connectors/conn-2/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-performance.test.ts:71)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:71` calls `GET /connectors/conn-2/performance-stats?workspaceId=${VALID_WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-2/performance-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-3c045f2db5954b4e", "name": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=not-a-uuid (apps/api/src/__tests__/connector-perfor", "shortDescription": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=not-a-uuid (apps/api/src/__tests__/connector-performance.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:81` calls `GET /connectors/conn-1/performance-stats?workspaceId=not-a-uuid` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/performance-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-cc86fe9423f97e15", "name": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS}&limit=5 (apps/api/src/__tests__/connect", "shortDescription": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS}&limit=5 (apps/api/src/__tests__/connector-performance.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:90` calls `GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS}&limit=5` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/performance-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-8490917ce8b78bc9", "name": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-perfo", "shortDescription": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-performance.test.ts:99)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:99` calls `GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/performance-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-5096414aaa9dcbc6", "name": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:123)", "shortDescription": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:123` calls `POST /connectors/conn-1/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e0b381f0f73d261", "name": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:142)", "shortDescription": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:142)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:142` calls `POST /connectors/conn-1/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6ff9caa018fba97", "name": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:158)", "shortDescription": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:158)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:158` calls `POST /connectors/conn-1/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df06cc800a2539a7", "name": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:175)", "shortDescription": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:175)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:175` calls `POST /connectors/conn-1/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-33d82442d14f1265", "name": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:190)", "shortDescription": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:190)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:190` calls `POST /connectors/conn-1/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59a31787314fc445", "name": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:206)", "shortDescription": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:206)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-performance.test.ts:206` calls `POST /connectors/conn-1/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/connectors/conn-1/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e699ef0267ff7c3b", "name": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sso-config.test.ts:62` calls `GET /sso` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sso`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bdd941fe8055a8fa", "name": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:69)", "shortDescription": {"text": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:69)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sso-config.test.ts:69` calls `GET /sso` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sso`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-993104337f61495f", "name": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sso-config.test.ts:75` calls `GET /sso` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sso`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e3de7f9039a7f7b", "name": "Dangling fetch: GET /sso/saml (apps/api/src/__tests__/sso-config.test.ts:83)", "shortDescription": {"text": "Dangling fetch: GET /sso/saml (apps/api/src/__tests__/sso-config.test.ts:83)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sso-config.test.ts:83` calls `GET /sso/saml` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sso/saml`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-468e777ba0f5908c", "name": "Dangling fetch: GET /sso/unknown-provider (apps/api/src/__tests__/sso-config.test.ts:88)", "shortDescription": {"text": "Dangling fetch: GET /sso/unknown-provider (apps/api/src/__tests__/sso-config.test.ts:88)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sso-config.test.ts:88` calls `GET /sso/unknown-provider` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sso/unknown-provider`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16a583e7ddab9276", "name": "Dangling fetch: GET /sso/saml (apps/api/src/__tests__/sso-config.test.ts:94)", "shortDescription": {"text": "Dangling fetch: GET /sso/saml (apps/api/src/__tests__/sso-config.test.ts:94)"}, "fullDescription": {"text": "`apps/api/src/__tests__/sso-config.test.ts:94` calls `GET /sso/saml` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/sso/saml`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abbc8eecbb6e97fb", "name": "Dangling fetch: GET /c-1/health (apps/api/src/__tests__/connector-health.test.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /c-1/health (apps/api/src/__tests__/connector-health.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:47` calls `GET /c-1/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/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-958166f4cd3d0e51", "name": "Dangling fetch: GET /c-1/health (apps/api/src/__tests__/connector-health.test.ts:55)", "shortDescription": {"text": "Dangling fetch: GET /c-1/health (apps/api/src/__tests__/connector-health.test.ts:55)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:55` calls `GET /c-1/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/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-f77ae953fc9d2309", "name": "Dangling fetch: GET /c-1/health-history (apps/api/src/__tests__/connector-health.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /c-1/health-history (apps/api/src/__tests__/connector-health.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:63` calls `GET /c-1/health-history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/health-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-8f394c66033b3803", "name": "Dangling fetch: GET /c-1/health-history?days=14 (apps/api/src/__tests__/connector-health.test.ts:71)", "shortDescription": {"text": "Dangling fetch: GET /c-1/health-history?days=14 (apps/api/src/__tests__/connector-health.test.ts:71)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:71` calls `GET /c-1/health-history?days=14` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/health-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-51f95905fcd4911d", "name": "Dangling fetch: POST /c-1/recovery-action (apps/api/src/__tests__/connector-health.test.ts:80)", "shortDescription": {"text": "Dangling fetch: POST /c-1/recovery-action (apps/api/src/__tests__/connector-health.test.ts:80)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:80` calls `POST /c-1/recovery-action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/recovery-action`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ead61ece5291c544", "name": "Dangling fetch: POST /c-1/recovery-action (apps/api/src/__tests__/connector-health.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /c-1/recovery-action (apps/api/src/__tests__/connector-health.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:90` calls `POST /c-1/recovery-action` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/recovery-action`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-263b444f18d60daa", "name": "Dangling fetch: DELETE /health-alerts/a-1 (apps/api/src/__tests__/connector-health.test.ts:112)", "shortDescription": {"text": "Dangling fetch: DELETE /health-alerts/a-1 (apps/api/src/__tests__/connector-health.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:112` calls `DELETE /health-alerts/a-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/health-alerts/a-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-475af763d081bec3", "name": "Dangling fetch: GET /c-1/recovery-suggestions (apps/api/src/__tests__/connector-health.test.ts:124)", "shortDescription": {"text": "Dangling fetch: GET /c-1/recovery-suggestions (apps/api/src/__tests__/connector-health.test.ts:124)"}, "fullDescription": {"text": "`apps/api/src/__tests__/connector-health.test.ts:124` calls `GET /c-1/recovery-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/c-1/recovery-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d39c7dedb72d59f2", "name": "Dangling fetch: GET /jobs/j2 (apps/api/src/__tests__/workspace-export.test.ts:154)", "shortDescription": {"text": "Dangling fetch: GET /jobs/j2 (apps/api/src/__tests__/workspace-export.test.ts:154)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-export.test.ts:154` calls `GET /jobs/j2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/jobs/j2`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb4cd71e32176bea", "name": "Dangling fetch: GET /jobs/missing (apps/api/src/__tests__/workspace-export.test.ts:166)", "shortDescription": {"text": "Dangling fetch: GET /jobs/missing (apps/api/src/__tests__/workspace-export.test.ts:166)"}, "fullDescription": {"text": "`apps/api/src/__tests__/workspace-export.test.ts:166` calls `GET /jobs/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/jobs/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ad321a3b14c6404", "name": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:36)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:36)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:36` calls `POST /api/v1/query-expansion/expand` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/expand`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8027bcd2222096ef", "name": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:47)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:47)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:47` calls `POST /api/v1/query-expansion/expand` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/expand`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8258514a365dda08", "name": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:56)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:56)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:56` calls `POST /api/v1/query-expansion/expand` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/expand`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab298fc9e3c09dc5", "name": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:65)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:65)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:65` calls `POST /api/v1/query-expansion/expand` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/expand`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-318bc827629fbfc0", "name": "Dangling fetch: POST /api/v1/query-expansion/refine (apps/api/src/__tests__/query-expansion.test.ts:76)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/refine (apps/api/src/__tests__/query-expansion.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:76` calls `POST /api/v1/query-expansion/refine` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/refine`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e4a210e6afeb7b1", "name": "Dangling fetch: POST /api/v1/query-expansion/refine (apps/api/src/__tests__/query-expansion.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/refine (apps/api/src/__tests__/query-expansion.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:90` calls `POST /api/v1/query-expansion/refine` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/refine`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0129280c6f42d902", "name": "Dangling fetch: POST /api/v1/query-expansion/sessions/sess1/feedback (apps/api/src/__tests__/query-expansion.test.ts:101", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/sessions/sess1/feedback (apps/api/src/__tests__/query-expansion.test.ts:101)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:101` calls `POST /api/v1/query-expansion/sessions/sess1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/sessions/sess1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dffa7e40e3f36c4e", "name": "Dangling fetch: POST /api/v1/query-expansion/sessions/sess1/feedback (apps/api/src/__tests__/query-expansion.test.ts:112", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-expansion/sessions/sess1/feedback (apps/api/src/__tests__/query-expansion.test.ts:112)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:112` calls `POST /api/v1/query-expansion/sessions/sess1/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/sessions/sess1/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e7abdd412055bd4", "name": "Dangling fetch: GET /api/v1/query-expansion/sessions/sess1 (apps/api/src/__tests__/query-expansion.test.ts:123)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/query-expansion/sessions/sess1 (apps/api/src/__tests__/query-expansion.test.ts:123)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:123` calls `GET /api/v1/query-expansion/sessions/sess1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/sessions/sess1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5105343466fb79cc", "name": "Dangling fetch: GET /api/v1/query-expansion/sessions/missing (apps/api/src/__tests__/query-expansion.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/query-expansion/sessions/missing (apps/api/src/__tests__/query-expansion.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/__tests__/query-expansion.test.ts:137` calls `GET /api/v1/query-expansion/sessions/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/query-expansion/sessions/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab69441012aea4f3", "name": "Dangling fetch: GET /api/v1/admin/pii/access-audit (apps/api/src/__tests__/pii-masking-audit.test.ts:23)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/pii/access-audit (apps/api/src/__tests__/pii-masking-audit.test.ts:23)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:23` calls `GET /api/v1/admin/pii/access-audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/access-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30a097cb8fc2e2b7", "name": "Dangling fetch: GET /api/v1/admin/pii/access-audit (apps/api/src/__tests__/pii-masking-audit.test.ts:34)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/pii/access-audit (apps/api/src/__tests__/pii-masking-audit.test.ts:34)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:34` calls `GET /api/v1/admin/pii/access-audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/access-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7f7ed703b14dca3", "name": "Dangling fetch: GET /api/v1/admin/pii/fields (apps/api/src/__tests__/pii-masking-audit.test.ts:46)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/pii/fields (apps/api/src/__tests__/pii-masking-audit.test.ts:46)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:46` calls `GET /api/v1/admin/pii/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6794fd86a4d165af", "name": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:59", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:59` calls `PUT /api/v1/admin/pii/fields/hubspot/email/strategy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/hubspot/email/strategy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b3458591f864840", "name": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:72", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:72)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:72` calls `PUT /api/v1/admin/pii/fields/hubspot/email/strategy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/hubspot/email/strategy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a933c71291dbe62", "name": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:85", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:85)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:85` calls `PUT /api/v1/admin/pii/fields/hubspot/email/strategy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/hubspot/email/strategy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3ea0d64467222835", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/api/src/__tests__/pii-masking-audit.test.ts:100)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/api/src/__tests__/pii-masking-audit.test.ts:100)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:100` calls `POST /api/v1/admin/pii/fields/bulk-rule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/bulk-rule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8fe28e186fbea04", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/api/src/__tests__/pii-masking-audit.test.ts:113)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/api/src/__tests__/pii-masking-audit.test.ts:113)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:113` calls `POST /api/v1/admin/pii/fields/bulk-rule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/bulk-rule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9d46798e13f832e", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:126)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:126` calls `POST /api/v1/admin/pii/fields/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/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-ba74d48d8f7b06af", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:140)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:140)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:140` calls `POST /api/v1/admin/pii/fields/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/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-7767a7e5cc0dedd1", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:152)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:152)"}, "fullDescription": {"text": "`apps/api/src/__tests__/pii-masking-audit.test.ts:152` calls `POST /api/v1/admin/pii/fields/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/admin/pii/fields/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-ef9acc0075b8fa1a", "name": "Dangling fetch: POST /accept/valid-token-abc (apps/api/src/__tests__/team-management.test.ts:165)", "shortDescription": {"text": "Dangling fetch: POST /accept/valid-token-abc (apps/api/src/__tests__/team-management.test.ts:165)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:165` calls `POST /accept/valid-token-abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/accept/valid-token-abc`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3076589b687aa979", "name": "Dangling fetch: POST /accept/expired-token (apps/api/src/__tests__/team-management.test.ts:176)", "shortDescription": {"text": "Dangling fetch: POST /accept/expired-token (apps/api/src/__tests__/team-management.test.ts:176)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:176` calls `POST /accept/expired-token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/accept/expired-token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8806f86cc50cad3", "name": "Dangling fetch: PUT /u1/role (apps/api/src/__tests__/team-management.test.ts:189)", "shortDescription": {"text": "Dangling fetch: PUT /u1/role (apps/api/src/__tests__/team-management.test.ts:189)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:189` calls `PUT /u1/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/u1/role`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-50972ed402c0f9a0", "name": "Dangling fetch: PUT /u1/role (apps/api/src/__tests__/team-management.test.ts:203)", "shortDescription": {"text": "Dangling fetch: PUT /u1/role (apps/api/src/__tests__/team-management.test.ts:203)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:203` calls `PUT /u1/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/u1/role`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3a78eec74f17821", "name": "Dangling fetch: PUT /nonexistent/role (apps/api/src/__tests__/team-management.test.ts:216)", "shortDescription": {"text": "Dangling fetch: PUT /nonexistent/role (apps/api/src/__tests__/team-management.test.ts:216)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:216` calls `PUT /nonexistent/role` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/nonexistent/role`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1cd13ed7d4a8ced", "name": "Dangling fetch: DELETE /u1 (apps/api/src/__tests__/team-management.test.ts:231)", "shortDescription": {"text": "Dangling fetch: DELETE /u1 (apps/api/src/__tests__/team-management.test.ts:231)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:231` calls `DELETE /u1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/u1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44a00fa66f34d0d5", "name": "Dangling fetch: DELETE /notexist (apps/api/src/__tests__/team-management.test.ts:242)", "shortDescription": {"text": "Dangling fetch: DELETE /notexist (apps/api/src/__tests__/team-management.test.ts:242)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:242` calls `DELETE /notexist` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/notexist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-883885552973d0b5", "name": "Dangling fetch: DELETE /invitations/inv-1 (apps/api/src/__tests__/team-management.test.ts:271)", "shortDescription": {"text": "Dangling fetch: DELETE /invitations/inv-1 (apps/api/src/__tests__/team-management.test.ts:271)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:271` calls `DELETE /invitations/inv-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/invitations/inv-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d8e1a7c7e0c9332", "name": "Dangling fetch: DELETE /invitations/missing (apps/api/src/__tests__/team-management.test.ts:282)", "shortDescription": {"text": "Dangling fetch: DELETE /invitations/missing (apps/api/src/__tests__/team-management.test.ts:282)"}, "fullDescription": {"text": "`apps/api/src/__tests__/team-management.test.ts:282` calls `DELETE /invitations/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/invitations/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55e93631aab58326", "name": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:30)", "shortDescription": {"text": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:30)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:30` calls `GET /proactive/agents/agent-1/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/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-f65bb53096311edd", "name": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:38)", "shortDescription": {"text": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:38)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:38` calls `GET /proactive/agents/agent-1/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/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-f6f199a3fac627a2", "name": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:49)", "shortDescription": {"text": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:49)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:49` calls `GET /proactive/agents/agent-1/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/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-95b6b00fb14cb133", "name": "Dangling fetch: GET /proactive/agents/agent-1/proactive-preview (apps/api/src/__tests__/proactive-context.test.ts:64)", "shortDescription": {"text": "Dangling fetch: GET /proactive/agents/agent-1/proactive-preview (apps/api/src/__tests__/proactive-context.test.ts:64)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:64` calls `GET /proactive/agents/agent-1/proactive-preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/proactive-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-bee0da0f5697fbbf", "name": "Dangling fetch: GET /proactive/agents/agent-1/acceptance-stats (apps/api/src/__tests__/proactive-context.test.ts:78)", "shortDescription": {"text": "Dangling fetch: GET /proactive/agents/agent-1/acceptance-stats (apps/api/src/__tests__/proactive-context.test.ts:78)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:78` calls `GET /proactive/agents/agent-1/acceptance-stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/acceptance-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-00ca29207d736171", "name": "Dangling fetch: POST /proactive/agents/agent-1/proactive-settings (apps/api/src/__tests__/proactive-context.test.ts:90)", "shortDescription": {"text": "Dangling fetch: POST /proactive/agents/agent-1/proactive-settings (apps/api/src/__tests__/proactive-context.test.ts:90)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:90` calls `POST /proactive/agents/agent-1/proactive-settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/proactive-settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-457660a35ed8359f", "name": "Dangling fetch: POST /proactive/agents/agent-1/proactive-settings (apps/api/src/__tests__/proactive-context.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /proactive/agents/agent-1/proactive-settings (apps/api/src/__tests__/proactive-context.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:102` calls `POST /proactive/agents/agent-1/proactive-settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/agents/agent-1/proactive-settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97f63618145fecb3", "name": "Dangling fetch: POST /proactive/proactive/feedback (apps/api/src/__tests__/proactive-context.test.ts:114)", "shortDescription": {"text": "Dangling fetch: POST /proactive/proactive/feedback (apps/api/src/__tests__/proactive-context.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:114` calls `POST /proactive/proactive/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/proactive/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-121bf2e9589d676f", "name": "Dangling fetch: POST /proactive/proactive/feedback (apps/api/src/__tests__/proactive-context.test.ts:126)", "shortDescription": {"text": "Dangling fetch: POST /proactive/proactive/feedback (apps/api/src/__tests__/proactive-context.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/__tests__/proactive-context.test.ts:126` calls `POST /proactive/proactive/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/proactive/proactive/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d161fdeb430c97d", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:23)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:23)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:23` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49476c1b883846e6", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:31)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:31)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:31` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cc1be96d405048f", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:37)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:37)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:37` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-930ffc1b9b60e71f", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:45)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:45` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-402c514f187c5263", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:51)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:51)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:51` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f9e4884c06b94e0", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:59)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:59)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:59` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a47e6e87b5005dd", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:66)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:66)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:66` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6255631441f1d1d0", "name": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:73)", "shortDescription": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:73)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/admin-auth.test.ts:73` calls `GET /admin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff0f600044257b9e", "name": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:33)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:33)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:33` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f6279b2f19dae91", "name": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:39)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:39)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:39` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5274bfd718be9889", "name": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:45)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:45)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:45` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a2381efe1246726", "name": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:52)", "shortDescription": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:52)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:52` calls `GET /protected` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/protected`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc9c99288b87b216", "name": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:62)", "shortDescription": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:62)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:62` calls `GET /ws` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ws`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49f6e5577fbdce60", "name": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:68)", "shortDescription": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:68)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:68` calls `GET /ws` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ws`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-986d609b694250b0", "name": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:75)", "shortDescription": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:75)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:75` calls `GET /ws` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ws`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0846da814e06afbb", "name": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:82)", "shortDescription": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:82)"}, "fullDescription": {"text": "`apps/api/src/__tests__/middleware/auth.test.ts:82` calls `GET /ws` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ws`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-817d0e917fa0e355", "name": "Dangling fetch: POST /api/v1/index-repair/scan (apps/dashboard/components/index-corruption-detector.tsx:49)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/index-repair/scan (apps/dashboard/components/index-corruption-detector.tsx:49)"}, "fullDescription": {"text": "`apps/dashboard/components/index-corruption-detector.tsx:49` calls `POST /api/v1/index-repair/scan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/index-repair/scan`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-715efd92a495c766", "name": "Dangling fetch: POST /api/v1/admin/webhooks/${selectedWebhookId}/test-delivery (apps/dashboard/components/webhook-test-p", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/webhooks/${selectedWebhookId}/test-delivery (apps/dashboard/components/webhook-test-panel.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/components/webhook-test-panel.tsx:43` calls `POST /api/v1/admin/webhooks/${selectedWebhookId}/test-delivery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/webhooks/<p>/test-delivery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe61bc5aebe35c46", "name": "Dangling fetch: GET /api/v1/freshness/stale?${params} (apps/dashboard/components/staleness-alerts-panel.tsx:32)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/freshness/stale?${params} (apps/dashboard/components/staleness-alerts-panel.tsx:32)"}, "fullDescription": {"text": "`apps/dashboard/components/staleness-alerts-panel.tsx:32` calls `GET /api/v1/freshness/stale?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/freshness/stale`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2876c2237684e9c8", "name": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-test-panel.tsx:42)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-test-panel.tsx:42)"}, "fullDescription": {"text": "`apps/dashboard/components/metric-test-panel.tsx:42` calls `POST /api/v1/metrics/validate-formula` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/metrics/validate-formula`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-152b3c833dc387b1", "name": "Dangling fetch: GET /api/v1/validation/failures?${params.toString()} (apps/dashboard/components/validation-failure-explo", "shortDescription": {"text": "Dangling fetch: GET /api/v1/validation/failures?${params.toString()} (apps/dashboard/components/validation-failure-explorer.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/components/validation-failure-explorer.tsx:43` calls `GET /api/v1/validation/failures?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/validation/failures`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae84cf1f757b6ed4", "name": "Dangling fetch: POST /api/v1/validation/failures/${failureId}/acknowledge (apps/dashboard/components/validation-failure-", "shortDescription": {"text": "Dangling fetch: POST /api/v1/validation/failures/${failureId}/acknowledge (apps/dashboard/components/validation-failure-explorer.tsx:70)"}, "fullDescription": {"text": "`apps/dashboard/components/validation-failure-explorer.tsx:70` calls `POST /api/v1/validation/failures/${failureId}/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/validation/failures/<p>/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95b3d29bbd6c8c38", "name": "Dangling fetch: GET /api/v1/mcp/auto-tools (apps/dashboard/components/auto-tool-registry.tsx:57)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/auto-tools (apps/dashboard/components/auto-tool-registry.tsx:57)"}, "fullDescription": {"text": "`apps/dashboard/components/auto-tool-registry.tsx:57` calls `GET /api/v1/mcp/auto-tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/mcp/auto-tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb79db2546d19c14", "name": "Dangling fetch: POST /api/v1/workflows/curated/${template.id}/instantiate (apps/dashboard/components/workflow-installer.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workflows/curated/${template.id}/instantiate (apps/dashboard/components/workflow-installer.tsx:50)"}, "fullDescription": {"text": "`apps/dashboard/components/workflow-installer.tsx:50` calls `POST /api/v1/workflows/curated/${template.id}/instantiate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workflows/curated/<p>/instantiate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1fdd12425a855a7", "name": "Dangling fetch: GET /api/v1/performance/stats?window=${windowMinutes} (apps/dashboard/components/profiler-dashboard.tsx:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/performance/stats?window=${windowMinutes} (apps/dashboard/components/profiler-dashboard.tsx:68)"}, "fullDescription": {"text": "`apps/dashboard/components/profiler-dashboard.tsx:68` calls `GET /api/v1/performance/stats?window=${windowMinutes}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/performance/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-5b3c62855be07ce0", "name": "Dangling fetch: GET /api/v1/performance/connectors?window=${windowMinutes} (apps/dashboard/components/profiler-dashboard", "shortDescription": {"text": "Dangling fetch: GET /api/v1/performance/connectors?window=${windowMinutes} (apps/dashboard/components/profiler-dashboard.tsx:71)"}, "fullDescription": {"text": "`apps/dashboard/components/profiler-dashboard.tsx:71` calls `GET /api/v1/performance/connectors?window=${windowMinutes}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/performance/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-977017b67c825770", "name": "Dangling fetch: POST /api/v1/graphql (apps/dashboard/components/graphql-query-builder.tsx:81)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/graphql (apps/dashboard/components/graphql-query-builder.tsx:81)"}, "fullDescription": {"text": "`apps/dashboard/components/graphql-query-builder.tsx:81` calls `POST /api/v1/graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/graphql`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a86d24aa78834652", "name": "Dangling fetch: POST /api/v1/queries/suggestions (apps/dashboard/components/query-suggestions-widget.tsx:32)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/suggestions (apps/dashboard/components/query-suggestions-widget.tsx:32)"}, "fullDescription": {"text": "`apps/dashboard/components/query-suggestions-widget.tsx:32` calls `POST /api/v1/queries/suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc6655be66900b08", "name": "Dangling fetch: GET /api/v1/sync-optimizer/config/${connectorId} (apps/dashboard/components/concurrency-tuning-wizard.ts", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sync-optimizer/config/${connectorId} (apps/dashboard/components/concurrency-tuning-wizard.tsx:30)"}, "fullDescription": {"text": "`apps/dashboard/components/concurrency-tuning-wizard.tsx:30` calls `GET /api/v1/sync-optimizer/config/${connectorId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sync-optimizer/config/<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-385c06862e29a412", "name": "Dangling fetch: POST /api/v1/sync-optimizer/tuning/${connectorId} (apps/dashboard/components/concurrency-tuning-wizard.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/sync-optimizer/tuning/${connectorId} (apps/dashboard/components/concurrency-tuning-wizard.tsx:41)"}, "fullDescription": {"text": "`apps/dashboard/components/concurrency-tuning-wizard.tsx:41` calls `POST /api/v1/sync-optimizer/tuning/${connectorId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sync-optimizer/tuning/<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-3f38754ff0d353dc", "name": "Dangling fetch: GET /api/v1/freshness/metrics/${connectorId}?intervalDays=${intervalDays} (apps/dashboard/components/fre", "shortDescription": {"text": "Dangling fetch: GET /api/v1/freshness/metrics/${connectorId}?intervalDays=${intervalDays} (apps/dashboard/components/freshness-timeline.tsx:132)"}, "fullDescription": {"text": "`apps/dashboard/components/freshness-timeline.tsx:132` calls `GET /api/v1/freshness/metrics/${connectorId}?intervalDays=${intervalDays}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/freshness/metrics/<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-f1e18677b43c45bc", "name": "Dangling fetch: POST /api/v1/workspace/alerts/rules (apps/dashboard/components/alert-rule-editor.tsx:51)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/alerts/rules (apps/dashboard/components/alert-rule-editor.tsx:51)"}, "fullDescription": {"text": "`apps/dashboard/components/alert-rule-editor.tsx:51` calls `POST /api/v1/workspace/alerts/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-767ad6208760bdc6", "name": "Dangling fetch: GET /api/v1/admin/connectors/resilience/${connectorId} (apps/dashboard/components/connector-resilience-c", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/resilience/${connectorId} (apps/dashboard/components/connector-resilience-config.tsx:60)"}, "fullDescription": {"text": "`apps/dashboard/components/connector-resilience-config.tsx:60` calls `GET /api/v1/admin/connectors/resilience/${connectorId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/connectors/resilience/<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-4124c8d624c7f074", "name": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/${connectorId} (apps/dashboard/components/connector-resilience-c", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/${connectorId} (apps/dashboard/components/connector-resilience-config.tsx:77)"}, "fullDescription": {"text": "`apps/dashboard/components/connector-resilience-config.tsx:77` calls `PUT /api/v1/admin/connectors/resilience/${connectorId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/connectors/resilience/<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-ef194decc60e189f", "name": "Dangling fetch: DELETE /api/v1/admin/connectors/resilience/${connectorId}/reset (apps/dashboard/components/connector-res", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/admin/connectors/resilience/${connectorId}/reset (apps/dashboard/components/connector-resilience-config.tsx:96)"}, "fullDescription": {"text": "`apps/dashboard/components/connector-resilience-config.tsx:96` calls `DELETE /api/v1/admin/connectors/resilience/${connectorId}/reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/connectors/resilience/<p>/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-f8c66fa57b88b056", "name": "Dangling fetch: GET /api/v1/data/export?${params.toString()} (apps/dashboard/components/export-configurator.tsx:27)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/data/export?${params.toString()} (apps/dashboard/components/export-configurator.tsx:27)"}, "fullDescription": {"text": "`apps/dashboard/components/export-configurator.tsx:27` calls `GET /api/v1/data/export?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/data/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57314dab802c987a", "name": "Dangling fetch: GET /api/v1/lineage/${encodeURIComponent(entityId)} (apps/dashboard/components/lineage-graph-viewer.tsx:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/lineage/${encodeURIComponent(entityId)} (apps/dashboard/components/lineage-graph-viewer.tsx:73)"}, "fullDescription": {"text": "`apps/dashboard/components/lineage-graph-viewer.tsx:73` calls `GET /api/v1/lineage/${encodeURIComponent(entityId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/lineage/<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-198279559be6fe6f", "name": "Dangling fetch: GET /api/v1/admin/audit-logs?${params.toString()} (apps/dashboard/components/audit-log-viewer.tsx:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/audit-logs?${params.toString()} (apps/dashboard/components/audit-log-viewer.tsx:47)"}, "fullDescription": {"text": "`apps/dashboard/components/audit-log-viewer.tsx:47` calls `GET /api/v1/admin/audit-logs?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/audit-logs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1058ba4443db26ea", "name": "Dangling fetch: GET /api/v1/admin/vector-health?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/component", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/vector-health?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/components/vector-health-monitor.tsx:75)"}, "fullDescription": {"text": "`apps/dashboard/components/vector-health-monitor.tsx:75` calls `GET /api/v1/admin/vector-health?workspaceId=${encodeURIComponent(workspaceId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/vector-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-4c08f35ce3de2fe9", "name": "Dangling fetch: POST /api/v1/admin/vector-health/run (apps/dashboard/components/vector-health-monitor.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/vector-health/run (apps/dashboard/components/vector-health-monitor.tsx:91)"}, "fullDescription": {"text": "`apps/dashboard/components/vector-health-monitor.tsx:91` calls `POST /api/v1/admin/vector-health/run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/vector-health/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-ffc834eed8941d45", "name": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/dashboard/components/audit-export-wizard.tsx:42)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/dashboard/components/audit-export-wizard.tsx:42)"}, "fullDescription": {"text": "`apps/dashboard/components/audit-export-wizard.tsx:42` calls `POST /api/v1/compliance/audit-export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/compliance/audit-export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-249d404c98110573", "name": "Dangling fetch: GET /api/v1/entities/subscriptions (apps/dashboard/components/notification-preferences.tsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/subscriptions (apps/dashboard/components/notification-preferences.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/components/notification-preferences.tsx:33` calls `GET /api/v1/entities/subscriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/subscriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3508a6bde49dd0fa", "name": "Dangling fetch: POST /api/v1/entities/subscriptions (apps/dashboard/components/notification-preferences.tsx:51)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/subscriptions (apps/dashboard/components/notification-preferences.tsx:51)"}, "fullDescription": {"text": "`apps/dashboard/components/notification-preferences.tsx:51` calls `POST /api/v1/entities/subscriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/subscriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bac00ce6eb5db15a", "name": "Dangling fetch: DELETE /api/v1/entities/subscriptions/${subscriptionId} (apps/dashboard/components/notification-preferen", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/entities/subscriptions/${subscriptionId} (apps/dashboard/components/notification-preferences.tsx:77)"}, "fullDescription": {"text": "`apps/dashboard/components/notification-preferences.tsx:77` calls `DELETE /api/v1/entities/subscriptions/${subscriptionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/subscriptions/<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-34526794c9aa5dee", "name": "Dangling fetch: GET /api/v1/enrichments (apps/dashboard/components/enrichment-sources-manager.tsx:38)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/enrichments (apps/dashboard/components/enrichment-sources-manager.tsx:38)"}, "fullDescription": {"text": "`apps/dashboard/components/enrichment-sources-manager.tsx:38` calls `GET /api/v1/enrichments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-acc565cacaf7559e", "name": "Dangling fetch: GET /api/v1/enrichments/coverage (apps/dashboard/components/enrichment-sources-manager.tsx:39)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/enrichments/coverage (apps/dashboard/components/enrichment-sources-manager.tsx:39)"}, "fullDescription": {"text": "`apps/dashboard/components/enrichment-sources-manager.tsx:39` calls `GET /api/v1/enrichments/coverage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichments/coverage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db19eb7cc53a11d2", "name": "Dangling fetch: POST /api/v1/enrichments/configure/${sourceId} (apps/dashboard/components/enrichment-sources-manager.tsx", "shortDescription": {"text": "Dangling fetch: POST /api/v1/enrichments/configure/${sourceId} (apps/dashboard/components/enrichment-sources-manager.tsx:63)"}, "fullDescription": {"text": "`apps/dashboard/components/enrichment-sources-manager.tsx:63` calls `POST /api/v1/enrichments/configure/${sourceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichments/configure/<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-cc8964a22792796f", "name": "Dangling fetch: POST /api/v1/queries/natural-language (apps/dashboard/components/query-input.tsx:46)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/natural-language (apps/dashboard/components/query-input.tsx:46)"}, "fullDescription": {"text": "`apps/dashboard/components/query-input.tsx:46` calls `POST /api/v1/queries/natural-language` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/natural-language`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-291003db05286099", "name": "Dangling fetch: POST /api/v1/queries/natural-language/feedback (apps/dashboard/components/query-input.tsx:65)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/natural-language/feedback (apps/dashboard/components/query-input.tsx:65)"}, "fullDescription": {"text": "`apps/dashboard/components/query-input.tsx:65` calls `POST /api/v1/queries/natural-language/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/natural-language/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5999a9ebff58ac8f", "name": "Dangling fetch: GET /api/v1/entities/changes?limit=200 (apps/dashboard/components/change-metrics.tsx:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/changes?limit=200 (apps/dashboard/components/change-metrics.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/components/change-metrics.tsx:62` calls `GET /api/v1/entities/changes?limit=200` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/changes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c01513c72749727c", "name": "Dangling fetch: GET /api/v1/compliance/alerts (apps/dashboard/components/anomaly-alert-dashboard.tsx:50)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/alerts (apps/dashboard/components/anomaly-alert-dashboard.tsx:50)"}, "fullDescription": {"text": "`apps/dashboard/components/anomaly-alert-dashboard.tsx:50` calls `GET /api/v1/compliance/alerts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/compliance/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-b8d99f492ba03782", "name": "Dangling fetch: POST /api/v1/compliance/alerts/${encodeURIComponent(alertId)}/acknowledge (apps/dashboard/components/ano", "shortDescription": {"text": "Dangling fetch: POST /api/v1/compliance/alerts/${encodeURIComponent(alertId)}/acknowledge (apps/dashboard/components/anomaly-alert-dashboard.tsx:68)"}, "fullDescription": {"text": "`apps/dashboard/components/anomaly-alert-dashboard.tsx:68` calls `POST /api/v1/compliance/alerts/${encodeURIComponent(alertId)}/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/compliance/alerts/<p>/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6cb7f3cdb6f3b5a4", "name": "Dangling fetch: GET /api/v1/billing/usage (apps/dashboard/components/billing-usage-chart.tsx:72)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/billing/usage (apps/dashboard/components/billing-usage-chart.tsx:72)"}, "fullDescription": {"text": "`apps/dashboard/components/billing-usage-chart.tsx:72` calls `GET /api/v1/billing/usage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/billing/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-631cab527ec94f82", "name": "Dangling fetch: GET /api/v1/billing/periods (apps/dashboard/components/billing-usage-chart.tsx:73)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/billing/periods (apps/dashboard/components/billing-usage-chart.tsx:73)"}, "fullDescription": {"text": "`apps/dashboard/components/billing-usage-chart.tsx:73` calls `GET /api/v1/billing/periods` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/billing/periods`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-927ac345727df735", "name": "Dangling fetch: POST /api/v1/batch/analyze (apps/dashboard/components/group-analysis-results.tsx:56)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/analyze (apps/dashboard/components/group-analysis-results.tsx:56)"}, "fullDescription": {"text": "`apps/dashboard/components/group-analysis-results.tsx:56` calls `POST /api/v1/batch/analyze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/batch/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e05a15e4c62170a3", "name": "Dangling fetch: POST /api/v1/batch/group-actions (apps/dashboard/components/group-analysis-results.tsx:61)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/group-actions (apps/dashboard/components/group-analysis-results.tsx:61)"}, "fullDescription": {"text": "`apps/dashboard/components/group-analysis-results.tsx:61` calls `POST /api/v1/batch/group-actions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/batch/group-actions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1012867d67f8ca35", "name": "Dangling fetch: GET /api/v1/connectors/${connectorId}/alerts (apps/dashboard/components/alert-action-logger.tsx:48)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${connectorId}/alerts (apps/dashboard/components/alert-action-logger.tsx:48)"}, "fullDescription": {"text": "`apps/dashboard/components/alert-action-logger.tsx:48` calls `GET /api/v1/connectors/${connectorId}/alerts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/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-cab1f4a7d4688329", "name": "Dangling fetch: GET /api/v1/entities/export?${params.toString()} (apps/dashboard/components/export-builder.tsx:36)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/export?${params.toString()} (apps/dashboard/components/export-builder.tsx:36)"}, "fullDescription": {"text": "`apps/dashboard/components/export-builder.tsx:36` calls `GET /api/v1/entities/export?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0fa77e267ec6f2f3", "name": "Dangling fetch: GET /api/v1/snapshots (apps/dashboard/components/snapshot-manager.tsx:49)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/snapshots (apps/dashboard/components/snapshot-manager.tsx:49)"}, "fullDescription": {"text": "`apps/dashboard/components/snapshot-manager.tsx:49` calls `GET /api/v1/snapshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-64fb456205078e0d", "name": "Dangling fetch: POST /api/v1/snapshots (apps/dashboard/components/snapshot-manager.tsx:73)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/snapshots (apps/dashboard/components/snapshot-manager.tsx:73)"}, "fullDescription": {"text": "`apps/dashboard/components/snapshot-manager.tsx:73` calls `POST /api/v1/snapshots` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57aff7d52418a41a", "name": "Dangling fetch: POST /api/v1/snapshots/${snapshotId}/restore (apps/dashboard/components/snapshot-manager.tsx:97)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/snapshots/${snapshotId}/restore (apps/dashboard/components/snapshot-manager.tsx:97)"}, "fullDescription": {"text": "`apps/dashboard/components/snapshot-manager.tsx:97` calls `POST /api/v1/snapshots/${snapshotId}/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/snapshots/<p>/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d83826a7d6461593", "name": "Dangling fetch: GET /api/v1/enrichment/sources/${id}/reliability (apps/dashboard/components/source-reliability-scorecard", "shortDescription": {"text": "Dangling fetch: GET /api/v1/enrichment/sources/${id}/reliability (apps/dashboard/components/source-reliability-scorecard.tsx:34)"}, "fullDescription": {"text": "`apps/dashboard/components/source-reliability-scorecard.tsx:34` calls `GET /api/v1/enrichment/sources/${id}/reliability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichment/sources/<p>/reliability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-383fa611fd32040f", "name": "Dangling fetch: GET /api/v1/enrichment/quality/${connectorId} (apps/dashboard/components/completeness-heatmap.tsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/enrichment/quality/${connectorId} (apps/dashboard/components/completeness-heatmap.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/components/completeness-heatmap.tsx:33` calls `GET /api/v1/enrichment/quality/${connectorId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichment/quality/<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-22a6540e74344b01", "name": "Dangling fetch: GET /api/v1/freshness/metrics/${cid}?intervalDays=7 (apps/dashboard/components/freshness-compliance-heat", "shortDescription": {"text": "Dangling fetch: GET /api/v1/freshness/metrics/${cid}?intervalDays=7 (apps/dashboard/components/freshness-compliance-heatmap.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/components/freshness-compliance-heatmap.tsx:33` calls `GET /api/v1/freshness/metrics/${cid}?intervalDays=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/freshness/metrics/<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-a2e595c5fd957f8b", "name": "Dangling fetch: GET /api/v1/compliance/audit-log?${params} (apps/dashboard/components/audit-log-explorer.tsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/audit-log?${params} (apps/dashboard/components/audit-log-explorer.tsx:52)"}, "fullDescription": {"text": "`apps/dashboard/components/audit-log-explorer.tsx:52` calls `GET /api/v1/compliance/audit-log?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/compliance/audit-log`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6f929c0527247827", "name": "Dangling fetch: POST /api/v1/transformations/rules (apps/dashboard/components/transformation-rule-editor.tsx:144)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/transformations/rules (apps/dashboard/components/transformation-rule-editor.tsx:144)"}, "fullDescription": {"text": "`apps/dashboard/components/transformation-rule-editor.tsx:144` calls `POST /api/v1/transformations/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/transformations/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03d20d18eaca7df1", "name": "Dangling fetch: DELETE /api/v1/transformations/rules/${ruleId} (apps/dashboard/components/transformation-rule-editor.tsx", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/transformations/rules/${ruleId} (apps/dashboard/components/transformation-rule-editor.tsx:166)"}, "fullDescription": {"text": "`apps/dashboard/components/transformation-rule-editor.tsx:166` calls `DELETE /api/v1/transformations/rules/${ruleId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/transformations/rules/<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-5926c298f64b04b3", "name": "Dangling fetch: GET /api/v1/scim/v2/Users?workspaceId=${workspaceId}&count=1 (apps/dashboard/components/scim-sync-status", "shortDescription": {"text": "Dangling fetch: GET /api/v1/scim/v2/Users?workspaceId=${workspaceId}&count=1 (apps/dashboard/components/scim-sync-status.tsx:44)"}, "fullDescription": {"text": "`apps/dashboard/components/scim-sync-status.tsx:44` calls `GET /api/v1/scim/v2/Users?workspaceId=${workspaceId}&count=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71fe130b712bea83", "name": "Dangling fetch: GET /scim/v2/Groups (apps/dashboard/components/scim-sync-status.tsx:50)", "shortDescription": {"text": "Dangling fetch: GET /scim/v2/Groups (apps/dashboard/components/scim-sync-status.tsx:50)"}, "fullDescription": {"text": "`apps/dashboard/components/scim-sync-status.tsx:50` calls `GET /scim/v2/Groups` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/scim/v2/groups`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d08bab6d150f0880", "name": "Dangling fetch: GET /api/v1/cache/patterns?workspaceId=${workspaceId} (apps/dashboard/components/cache-warming-status.ts", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/patterns?workspaceId=${workspaceId} (apps/dashboard/components/cache-warming-status.tsx:31)"}, "fullDescription": {"text": "`apps/dashboard/components/cache-warming-status.tsx:31` calls `GET /api/v1/cache/patterns?workspaceId=${workspaceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/cache/patterns`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-abb8c9e047480063", "name": "Dangling fetch: POST /api/v1/cache/predict (apps/dashboard/components/cache-warming-status.tsx:45)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/predict (apps/dashboard/components/cache-warming-status.tsx:45)"}, "fullDescription": {"text": "`apps/dashboard/components/cache-warming-status.tsx:45` calls `POST /api/v1/cache/predict` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/cache/predict`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76e92780b7bdd5e6", "name": "Dangling fetch: POST /api/v1/cache/preload (apps/dashboard/components/cache-warming-status.tsx:54)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/dashboard/components/cache-warming-status.tsx:54)"}, "fullDescription": {"text": "`apps/dashboard/components/cache-warming-status.tsx:54` calls `POST /api/v1/cache/preload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/cache/preload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8aecbbcf8deec64a", "name": "Dangling fetch: GET /api/v1/traces?${params} (apps/dashboard/components/latency-heatmap.tsx:56)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/traces?${params} (apps/dashboard/components/latency-heatmap.tsx:56)"}, "fullDescription": {"text": "`apps/dashboard/components/latency-heatmap.tsx:56` calls `GET /api/v1/traces?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/traces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a87d754e6ca01b85", "name": "Dangling fetch: POST /api/v1/lineage/${encodeURIComponent(entityId.trim())}/impact-analysis (apps/dashboard/components/i", "shortDescription": {"text": "Dangling fetch: POST /api/v1/lineage/${encodeURIComponent(entityId.trim())}/impact-analysis (apps/dashboard/components/impact-analysis-tool.tsx:41)"}, "fullDescription": {"text": "`apps/dashboard/components/impact-analysis-tool.tsx:41` calls `POST /api/v1/lineage/${encodeURIComponent(entityId.trim())}/impact-analysis` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/lineage/<p>/impact-analysis`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db44eb4b19b5716e", "name": "Dangling fetch: GET /api/v1/dedup/candidates?status=reviewed&limit=100 (apps/dashboard/components/dedup-decision-history", "shortDescription": {"text": "Dangling fetch: GET /api/v1/dedup/candidates?status=reviewed&limit=100 (apps/dashboard/components/dedup-decision-history.tsx:48)"}, "fullDescription": {"text": "`apps/dashboard/components/dedup-decision-history.tsx:48` calls `GET /api/v1/dedup/candidates?status=reviewed&limit=100` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/dedup/candidates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f60334f1b8c01fa", "name": "Dangling fetch: POST /api/v1/dedup/merge/${encodeURIComponent(record.sourceEntityId)}/${encodeURIComponent(record.candid", "shortDescription": {"text": "Dangling fetch: POST /api/v1/dedup/merge/${encodeURIComponent(record.sourceEntityId)}/${encodeURIComponent(record.candidateDuplicateId)}/undo (apps/dashboard/components/dedup-decision-history.tsx:63)"}, "fullDescription": {"text": "`apps/dashboard/components/dedup-decision-history.tsx:63` calls `POST /api/v1/dedup/merge/${encodeURIComponent(record.sourceEntityId)}/${encodeURIComponent(record.candidateDuplicateId)}/undo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/dedup/merge/<p>/<p>/undo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3fed39d801c7871f", "name": "Dangling fetch: GET /api/v1/search-quality/experiments?workspaceId=${encodeURIComponent(WORKSPACE_ID)} (apps/dashboard/c", "shortDescription": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments?workspaceId=${encodeURIComponent(WORKSPACE_ID)} (apps/dashboard/components/quality-metrics-dashboard.tsx:42)"}, "fullDescription": {"text": "`apps/dashboard/components/quality-metrics-dashboard.tsx:42` calls `GET /api/v1/search-quality/experiments?workspaceId=${encodeURIComponent(WORKSPACE_ID)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/search-quality/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d00af6b8f13bb81", "name": "Dangling fetch: GET /api/v1/traces/${traceId} (apps/dashboard/components/trace-waterfall.tsx:36)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/traces/${traceId} (apps/dashboard/components/trace-waterfall.tsx:36)"}, "fullDescription": {"text": "`apps/dashboard/components/trace-waterfall.tsx:36` calls `GET /api/v1/traces/${traceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/traces/<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-681c9c2816fd4b0c", "name": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/dashboard/components/query-cost-breakdown.tsx:199)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/dashboard/components/query-cost-breakdown.tsx:199)"}, "fullDescription": {"text": "`apps/dashboard/components/query-cost-breakdown.tsx:199` calls `POST /api/v1/queries/estimate-cost` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/estimate-cost`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea6ad7e1cd649f16", "name": "Dangling fetch: GET /api/v1/queries/cost-history?${params} (apps/dashboard/components/query-cost-breakdown.tsx:221)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/queries/cost-history?${params} (apps/dashboard/components/query-cost-breakdown.tsx:221)"}, "fullDescription": {"text": "`apps/dashboard/components/query-cost-breakdown.tsx:221` calls `GET /api/v1/queries/cost-history?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/cost-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-34428f74b4849e70", "name": "Dangling fetch: GET /api/v1/cache/stats (apps/dashboard/components/cache-stats-panel.tsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/stats (apps/dashboard/components/cache-stats-panel.tsx:40)"}, "fullDescription": {"text": "`apps/dashboard/components/cache-stats-panel.tsx:40` calls `GET /api/v1/cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/cache/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-9b9fc5cd92fe4177", "name": "Dangling fetch: DELETE /api/v1/cache/stats (apps/dashboard/components/cache-stats-panel.tsx:62)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/cache/stats (apps/dashboard/components/cache-stats-panel.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/components/cache-stats-panel.tsx:62` calls `DELETE /api/v1/cache/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/cache/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-6c0674631cf9c6e2", "name": "Dangling fetch: GET /api/v1/cache/clusters?days=${days} (apps/dashboard/components/query-clustering-analysis.tsx:68)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/cache/clusters?days=${days} (apps/dashboard/components/query-clustering-analysis.tsx:68)"}, "fullDescription": {"text": "`apps/dashboard/components/query-clustering-analysis.tsx:68` calls `GET /api/v1/cache/clusters?days=${days}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/cache/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9ec3243f52b00afc", "name": "Dangling fetch: GET /api/v1/data/jobs?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/components/job-hist", "shortDescription": {"text": "Dangling fetch: GET /api/v1/data/jobs?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/components/job-history-table.tsx:39)"}, "fullDescription": {"text": "`apps/dashboard/components/job-history-table.tsx:39` calls `GET /api/v1/data/jobs?workspaceId=${encodeURIComponent(workspaceId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/data/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70cf8f3dd2f30b9f", "name": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/dashboard/components/benchmarking-card.tsx:69)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/dashboard/components/benchmarking-card.tsx:69)"}, "fullDescription": {"text": "`apps/dashboard/components/benchmarking-card.tsx:69` calls `PUT /api/v1/workspace/benchmarks/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/benchmarks/settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2147fb0f3a4be9e", "name": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${workspaceId} (apps/dashboard/components/benchmark", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${workspaceId} (apps/dashboard/components/benchmarking-card.tsx:92)"}, "fullDescription": {"text": "`apps/dashboard/components/benchmarking-card.tsx:92` calls `GET /api/v1/workspace/benchmark-snapshot?workspaceId=${workspaceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/benchmark-snapshot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-436f23d3bd438188", "name": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${workspaceId} (apps/dashboard/components/b", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${workspaceId} (apps/dashboard/components/benchmarking-card.tsx:93)"}, "fullDescription": {"text": "`apps/dashboard/components/benchmarking-card.tsx:93` calls `GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${workspaceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/benchmarks/peer-comparison`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-909003f98fd4c69b", "name": "Dangling fetch: GET /api/v1/marketplace/connectors/${listing.connectorId}/ratings (apps/dashboard/components/connector-d", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${listing.connectorId}/ratings (apps/dashboard/components/connector-detail-modal.tsx:47)"}, "fullDescription": {"text": "`apps/dashboard/components/connector-detail-modal.tsx:47` calls `GET /api/v1/marketplace/connectors/${listing.connectorId}/ratings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/ratings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f48b8d72f1d7a3a", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/${listing.connectorId}/rate (apps/dashboard/components/connector-det", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/${listing.connectorId}/rate (apps/dashboard/components/connector-detail-modal.tsx:75)"}, "fullDescription": {"text": "`apps/dashboard/components/connector-detail-modal.tsx:75` calls `POST /api/v1/marketplace/connectors/${listing.connectorId}/rate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/rate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4c7cafba64a131e", "name": "Dangling fetch: GET /api/v1/query-optimizer/stats (apps/dashboard/components/query-optimizer-panel.tsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/query-optimizer/stats (apps/dashboard/components/query-optimizer-panel.tsx:52)"}, "fullDescription": {"text": "`apps/dashboard/components/query-optimizer-panel.tsx:52` calls `GET /api/v1/query-optimizer/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/query-optimizer/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-d7df792664f4e30d", "name": "Dangling fetch: POST /api/v1/queries/optimize (apps/dashboard/components/query-optimizer-panel.tsx:64)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/optimize (apps/dashboard/components/query-optimizer-panel.tsx:64)"}, "fullDescription": {"text": "`apps/dashboard/components/query-optimizer-panel.tsx:64` calls `POST /api/v1/queries/optimize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/optimize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a6eb75ccdae959a", "name": "Dangling fetch: PUT /api/v1/onboarding/step (apps/dashboard/components/onboarding-wizard.tsx:67)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/onboarding/step (apps/dashboard/components/onboarding-wizard.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/components/onboarding-wizard.tsx:67` calls `PUT /api/v1/onboarding/step` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/onboarding/step`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a37caa31ac4f0f1", "name": "Dangling fetch: POST /api/v1/onboarding/skip (apps/dashboard/components/onboarding-wizard.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/onboarding/skip (apps/dashboard/components/onboarding-wizard.tsx:91)"}, "fullDescription": {"text": "`apps/dashboard/components/onboarding-wizard.tsx:91` calls `POST /api/v1/onboarding/skip` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/onboarding/skip`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0993954bdf86f91", "name": "Dangling fetch: GET /api/v1/connectors?name=${encodeURIComponent(connId)} (apps/dashboard/components/onboarding-wizard.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors?name=${encodeURIComponent(connId)} (apps/dashboard/components/onboarding-wizard.tsx:106)"}, "fullDescription": {"text": "`apps/dashboard/components/onboarding-wizard.tsx:106` calls `GET /api/v1/connectors?name=${encodeURIComponent(connId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc442db7939f5ce1", "name": "Dangling fetch: POST /api/v1/connectors/${inst.id}/sync (apps/dashboard/components/onboarding-wizard.tsx:111)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${inst.id}/sync (apps/dashboard/components/onboarding-wizard.tsx:111)"}, "fullDescription": {"text": "`apps/dashboard/components/onboarding-wizard.tsx:111` calls `POST /api/v1/connectors/${inst.id}/sync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/sync`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-200f24ad96b9fa9b", "name": "Dangling fetch: GET /api/v1/connectors/${connectorId}/reliability (apps/dashboard/components/reliability-gauge.tsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${connectorId}/reliability (apps/dashboard/components/reliability-gauge.tsx:34)"}, "fullDescription": {"text": "`apps/dashboard/components/reliability-gauge.tsx:34` calls `GET /api/v1/connectors/${connectorId}/reliability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/reliability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c51a4d9d5f1524d", "name": "Dangling fetch: GET /api/v1/resilience/circuit-breakers (apps/dashboard/components/resilience-status.tsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/resilience/circuit-breakers (apps/dashboard/components/resilience-status.tsx:34)"}, "fullDescription": {"text": "`apps/dashboard/components/resilience-status.tsx:34` calls `GET /api/v1/resilience/circuit-breakers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/resilience/circuit-breakers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e70fdb0875026458", "name": "Dangling fetch: POST /api/v1/connectors/${connectorId}/suggest-mapping (apps/dashboard/components/field-mapping-assistan", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${connectorId}/suggest-mapping (apps/dashboard/components/field-mapping-assistant.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/components/field-mapping-assistant.tsx:67` calls `POST /api/v1/connectors/${connectorId}/suggest-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/suggest-mapping`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d813dbc6c11cb94", "name": "Dangling fetch: POST /api/v1/connectors/${connectorId}/mapping-suggestions/confirm (apps/dashboard/components/field-mapp", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${connectorId}/mapping-suggestions/confirm (apps/dashboard/components/field-mapping-assistant.tsx:88)"}, "fullDescription": {"text": "`apps/dashboard/components/field-mapping-assistant.tsx:88` calls `POST /api/v1/connectors/${connectorId}/mapping-suggestions/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/mapping-suggestions/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f886ace5e27eda41", "name": "Dangling fetch: GET /api/v1/export/osi?${params.toString()} (apps/dashboard/components/osi-export-wizard.tsx:51)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/export/osi?${params.toString()} (apps/dashboard/components/osi-export-wizard.tsx:51)"}, "fullDescription": {"text": "`apps/dashboard/components/osi-export-wizard.tsx:51` calls `GET /api/v1/export/osi?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/export/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-acdbea905ffe7c8d", "name": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/dashboard/components/osi-export-wizard.tsx:89)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/dashboard/components/osi-export-wizard.tsx:89)"}, "fullDescription": {"text": "`apps/dashboard/components/osi-export-wizard.tsx:89` calls `POST /api/v1/workspace/import/osi` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/import/osi`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34c0fb6236de5374", "name": "Dangling fetch: DELETE /api/v1/mcp-clients/${clientId}/context-history?${params} (apps/dashboard/components/context-delt", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/mcp-clients/${clientId}/context-history?${params} (apps/dashboard/components/context-delta-analyzer.tsx:63)"}, "fullDescription": {"text": "`apps/dashboard/components/context-delta-analyzer.tsx:63` calls `DELETE /api/v1/mcp-clients/${clientId}/context-history?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/mcp-clients/<p>/context-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-292956e2ea1870c6", "name": "Dangling fetch: POST /api/v1/optimization/ab-tests/${encodeURIComponent(testId)}/conclude (apps/dashboard/components/ab-", "shortDescription": {"text": "Dangling fetch: POST /api/v1/optimization/ab-tests/${encodeURIComponent(testId)}/conclude (apps/dashboard/components/ab-test-results-panel.tsx:61)"}, "fullDescription": {"text": "`apps/dashboard/components/ab-test-results-panel.tsx:61` calls `POST /api/v1/optimization/ab-tests/${encodeURIComponent(testId)}/conclude` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/optimization/ab-tests/<p>/conclude`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6493ec65853fa5d", "name": "Dangling fetch: POST /api/v1/connectors/${connectorId}/schema/migrations (apps/dashboard/components/schema-migration-pla", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${connectorId}/schema/migrations (apps/dashboard/components/schema-migration-planner.tsx:56)"}, "fullDescription": {"text": "`apps/dashboard/components/schema-migration-planner.tsx:56` calls `POST /api/v1/connectors/${connectorId}/schema/migrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/schema/migrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f151e5005ec18cf", "name": "Dangling fetch: GET /api/v1/webhooks/events?${params} (apps/dashboard/components/webhook-delivery-status.tsx:69)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/webhooks/events?${params} (apps/dashboard/components/webhook-delivery-status.tsx:69)"}, "fullDescription": {"text": "`apps/dashboard/components/webhook-delivery-status.tsx:69` calls `GET /api/v1/webhooks/events?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/webhooks/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9959ed0e14d324b4", "name": "Dangling fetch: POST /api/v1/query-optimizer/plan (apps/dashboard/components/query-strategy-analyzer.tsx:67)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-optimizer/plan (apps/dashboard/components/query-strategy-analyzer.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/components/query-strategy-analyzer.tsx:67` calls `POST /api/v1/query-optimizer/plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/query-optimizer/plan`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c22e878dd0300f33", "name": "Dangling fetch: GET /api/v1/agents/${agentId}/profile (apps/dashboard/components/agent-proactive-config.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${agentId}/profile (apps/dashboard/components/agent-proactive-config.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/components/agent-proactive-config.tsx:43` calls `GET /api/v1/agents/${agentId}/profile` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/agents/<p>/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-549755a8c11ad9b0", "name": "Dangling fetch: GET /api/v1/agents/${agentId}/proactive-preview (apps/dashboard/components/agent-proactive-config.tsx:44", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${agentId}/proactive-preview (apps/dashboard/components/agent-proactive-config.tsx:44)"}, "fullDescription": {"text": "`apps/dashboard/components/agent-proactive-config.tsx:44` calls `GET /api/v1/agents/${agentId}/proactive-preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/agents/<p>/proactive-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-07baa4b9c8e49371", "name": "Dangling fetch: GET /api/v1/agents/${agentId}/acceptance-stats (apps/dashboard/components/agent-proactive-config.tsx:45)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${agentId}/acceptance-stats (apps/dashboard/components/agent-proactive-config.tsx:45)"}, "fullDescription": {"text": "`apps/dashboard/components/agent-proactive-config.tsx:45` calls `GET /api/v1/agents/${agentId}/acceptance-stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/agents/<p>/acceptance-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-2c12bc3c8b6d7c07", "name": "Dangling fetch: POST /api/v1/agents/${agentId}/proactive-settings (apps/dashboard/components/agent-proactive-config.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${agentId}/proactive-settings (apps/dashboard/components/agent-proactive-config.tsx:57)"}, "fullDescription": {"text": "`apps/dashboard/components/agent-proactive-config.tsx:57` calls `POST /api/v1/agents/${agentId}/proactive-settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/agents/<p>/proactive-settings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae8ec3ac662c4843", "name": "Dangling fetch: GET /api/v1/mcp-tools/${toolName}/sdk-stub?language=${stubLang}&version=${version} (apps/dashboard/compo", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp-tools/${toolName}/sdk-stub?language=${stubLang}&version=${version} (apps/dashboard/components/mcp-tool-browser.tsx:45)"}, "fullDescription": {"text": "`apps/dashboard/components/mcp-tool-browser.tsx:45` calls `GET /api/v1/mcp-tools/${toolName}/sdk-stub?language=${stubLang}&version=${version}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/mcp-tools/<p>/sdk-stub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b9f842c915eb4d8", "name": "Dangling fetch: GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&limit=${limit} (ap", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&limit=${limit} (apps/dashboard/components/experiment-results-table.tsx:45)"}, "fullDescription": {"text": "`apps/dashboard/components/experiment-results-table.tsx:45` calls `GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&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: `/v1/sync-optimizer/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-302473931dca618d", "name": "Dangling fetch: POST /api/v1/context/stream (apps/dashboard/components/streaming-preview-panel.tsx:28)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/context/stream (apps/dashboard/components/streaming-preview-panel.tsx:28)"}, "fullDescription": {"text": "`apps/dashboard/components/streaming-preview-panel.tsx:28` calls `POST /api/v1/context/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/context/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c5a908bad73f9bc", "name": "Dangling fetch: GET /api/v1/sessions?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:44", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sessions?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:44)"}, "fullDescription": {"text": "`apps/dashboard/components/session-list.tsx:44` calls `GET /api/v1/sessions?userId=${encodeURIComponent(userId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sessions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab306ca8b188e1f1", "name": "Dangling fetch: GET /api/v1/sessions/devices?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-lis", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sessions/devices?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:47)"}, "fullDescription": {"text": "`apps/dashboard/components/session-list.tsx:47` calls `GET /api/v1/sessions/devices?userId=${encodeURIComponent(userId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sessions/devices`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5477dd65f4b490c2", "name": "Dangling fetch: DELETE /api/v1/sessions/${id} (apps/dashboard/components/session-list.tsx:68)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/sessions/${id} (apps/dashboard/components/session-list.tsx:68)"}, "fullDescription": {"text": "`apps/dashboard/components/session-list.tsx:68` calls `DELETE /api/v1/sessions/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sessions/<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-5cbcd295af35d86d", "name": "Dangling fetch: DELETE /api/v1/sessions/devices/${deviceId}?userId=${encodeURIComponent(userId)} (apps/dashboard/compone", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/sessions/devices/${deviceId}?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:83)"}, "fullDescription": {"text": "`apps/dashboard/components/session-list.tsx:83` calls `DELETE /api/v1/sessions/devices/${deviceId}?userId=${encodeURIComponent(userId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sessions/devices/<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-a66895cb5359300d", "name": "Dangling fetch: GET /api/v1/connectors/${connectorId}/reliability (apps/dashboard/components/degradation-predictor-panel", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${connectorId}/reliability (apps/dashboard/components/degradation-predictor-panel.tsx:49)"}, "fullDescription": {"text": "`apps/dashboard/components/degradation-predictor-panel.tsx:49` calls `GET /api/v1/connectors/${connectorId}/reliability` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/reliability`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b09eb378bb1dbd9", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters?${params} (apps/dashboard/components/dedup-cluster-explorer.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters?${params} (apps/dashboard/components/dedup-cluster-explorer.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/components/dedup-cluster-explorer.tsx:43` calls `GET /api/v1/admin/dedup/clusters?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/dedup/clusters`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4c8606e435b2c7b4", "name": "Dangling fetch: POST /api/v1/transformations/test (apps/dashboard/components/transformation-test-panel.tsx:79)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/transformations/test (apps/dashboard/components/transformation-test-panel.tsx:79)"}, "fullDescription": {"text": "`apps/dashboard/components/transformation-test-panel.tsx:79` calls `POST /api/v1/transformations/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/transformations/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-60603bb4b56f0544", "name": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/dashboard/components/batch-context-panel.tsx:49)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/dashboard/components/batch-context-panel.tsx:49)"}, "fullDescription": {"text": "`apps/dashboard/components/batch-context-panel.tsx:49` calls `POST /api/v1/batch/recommend-contexts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/batch/recommend-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66847c6cb022ec93", "name": "Dangling fetch: POST /api/v1/workspace/alerts/channels (apps/dashboard/components/alert-channel-manager.tsx:59)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/alerts/channels (apps/dashboard/components/alert-channel-manager.tsx:59)"}, "fullDescription": {"text": "`apps/dashboard/components/alert-channel-manager.tsx:59` calls `POST /api/v1/workspace/alerts/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35fb678d1f4f4962", "name": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/dashboard/components/ranking-explainer.tsx:31)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/dashboard/components/ranking-explainer.tsx:31)"}, "fullDescription": {"text": "`apps/dashboard/components/ranking-explainer.tsx:31` calls `POST /api/v1/search-quality/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/search-quality/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7e9b43c4b03ce0c", "name": "Dangling fetch: GET /api/v1/graph/inferred-relationships?topK=20 (apps/dashboard/components/relationship-suggestions-pan", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graph/inferred-relationships?topK=20 (apps/dashboard/components/relationship-suggestions-panel.tsx:70)"}, "fullDescription": {"text": "`apps/dashboard/components/relationship-suggestions-panel.tsx:70` calls `GET /api/v1/graph/inferred-relationships?topK=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/graph/inferred-relationships`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a55789d04ada69e7", "name": "Dangling fetch: POST /api/v1/graph/inferred/${relId}/${action} (apps/dashboard/components/relationship-suggestions-panel", "shortDescription": {"text": "Dangling fetch: POST /api/v1/graph/inferred/${relId}/${action} (apps/dashboard/components/relationship-suggestions-panel.tsx:86)"}, "fullDescription": {"text": "`apps/dashboard/components/relationship-suggestions-panel.tsx:86` calls `POST /api/v1/graph/inferred/${relId}/${action}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/graph/inferred/<p>/<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-1fdf0944980f4094", "name": "Dangling fetch: POST /api/v1/traces/analyze (apps/dashboard/components/critical-path-analyzer.tsx:27)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/traces/analyze (apps/dashboard/components/critical-path-analyzer.tsx:27)"}, "fullDescription": {"text": "`apps/dashboard/components/critical-path-analyzer.tsx:27` calls `POST /api/v1/traces/analyze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/traces/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5484d3a307450af3", "name": "Dangling fetch: GET /api/v1/email-templates (apps/dashboard/components/email-template-editor.tsx:57)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/email-templates (apps/dashboard/components/email-template-editor.tsx:57)"}, "fullDescription": {"text": "`apps/dashboard/components/email-template-editor.tsx:57` calls `GET /api/v1/email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fedfe3b903f5b60", "name": "Dangling fetch: POST /api/v1/email-templates (apps/dashboard/components/email-template-editor.tsx:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/email-templates (apps/dashboard/components/email-template-editor.tsx:106)"}, "fullDescription": {"text": "`apps/dashboard/components/email-template-editor.tsx:106` calls `POST /api/v1/email-templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/email-templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac8c964c08d67323", "name": "Dangling fetch: DELETE /api/v1/email-templates/${id} (apps/dashboard/components/email-template-editor.tsx:134)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/email-templates/${id} (apps/dashboard/components/email-template-editor.tsx:134)"}, "fullDescription": {"text": "`apps/dashboard/components/email-template-editor.tsx:134` calls `DELETE /api/v1/email-templates/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/email-templates/<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-42fdc456db0a2730", "name": "Dangling fetch: POST /api/v1/queries/missing-context (apps/dashboard/components/missing-context-advisor.tsx:27)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/queries/missing-context (apps/dashboard/components/missing-context-advisor.tsx:27)"}, "fullDescription": {"text": "`apps/dashboard/components/missing-context-advisor.tsx:27` calls `POST /api/v1/queries/missing-context` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/queries/missing-context`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-086b8311f51d5d84", "name": "Dangling fetch: GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&limit=${limit} (ap", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&limit=${limit} (apps/dashboard/components/optimization-history-chart.tsx:36)"}, "fullDescription": {"text": "`apps/dashboard/components/optimization-history-chart.tsx:36` calls `GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&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: `/v1/sync-optimizer/experiments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f1b9da701ac2785d", "name": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/dashboard/components/nlp-config-chat.tsx:55)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/dashboard/components/nlp-config-chat.tsx:55)"}, "fullDescription": {"text": "`apps/dashboard/components/nlp-config-chat.tsx:55` calls `POST /api/v1/nlp-config/parse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nlp-config/parse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-36811024d8130762", "name": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/dashboard/components/nlp-config-chat.tsx:72)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/dashboard/components/nlp-config-chat.tsx:72)"}, "fullDescription": {"text": "`apps/dashboard/components/nlp-config-chat.tsx:72` calls `POST /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-708fe90c9f4a28aa", "name": "Dangling fetch: GET /api/v1/optimization/recommendations (apps/dashboard/components/auto-tuning-advisor.tsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/optimization/recommendations (apps/dashboard/components/auto-tuning-advisor.tsx:40)"}, "fullDescription": {"text": "`apps/dashboard/components/auto-tuning-advisor.tsx:40` calls `GET /api/v1/optimization/recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/optimization/recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f10aab0ac6e3f86", "name": "Dangling fetch: POST /api/v1/optimization/recommendations/generate (apps/dashboard/components/auto-tuning-advisor.tsx:56", "shortDescription": {"text": "Dangling fetch: POST /api/v1/optimization/recommendations/generate (apps/dashboard/components/auto-tuning-advisor.tsx:56)"}, "fullDescription": {"text": "`apps/dashboard/components/auto-tuning-advisor.tsx:56` calls `POST /api/v1/optimization/recommendations/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/optimization/recommendations/generate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f948cc20f13c94e1", "name": "Dangling fetch: POST /api/v1/optimization/recommendations/${id}/apply-test (apps/dashboard/components/auto-tuning-adviso", "shortDescription": {"text": "Dangling fetch: POST /api/v1/optimization/recommendations/${id}/apply-test (apps/dashboard/components/auto-tuning-advisor.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/components/auto-tuning-advisor.tsx:67` calls `POST /api/v1/optimization/recommendations/${id}/apply-test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/optimization/recommendations/<p>/apply-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-67f2c2f68e4a823e", "name": "Dangling fetch: POST /api/v1/optimization/recommendations/${id}/feedback (apps/dashboard/components/auto-tuning-advisor.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/optimization/recommendations/${id}/feedback (apps/dashboard/components/auto-tuning-advisor.tsx:75)"}, "fullDescription": {"text": "`apps/dashboard/components/auto-tuning-advisor.tsx:75` calls `POST /api/v1/optimization/recommendations/${id}/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/optimization/recommendations/<p>/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-72b068ccdf9faf2d", "name": "Dangling fetch: GET /api/v1/agents/${id}/insights (apps/dashboard/components/agent-feedback-dashboard.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${id}/insights (apps/dashboard/components/agent-feedback-dashboard.tsx:71)"}, "fullDescription": {"text": "`apps/dashboard/components/agent-feedback-dashboard.tsx:71` calls `GET /api/v1/agents/${id}/insights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/agents/<p>/insights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bb456836c7a3602", "name": "Dangling fetch: GET /api/v1/agents/relevance-adjustments (apps/dashboard/components/agent-feedback-dashboard.tsx:72)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/relevance-adjustments (apps/dashboard/components/agent-feedback-dashboard.tsx:72)"}, "fullDescription": {"text": "`apps/dashboard/components/agent-feedback-dashboard.tsx:72` calls `GET /api/v1/agents/relevance-adjustments` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/agents/relevance-adjustments`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-797e5155f6661f98", "name": "Dangling fetch: POST /api/v1/validation/rules (apps/dashboard/components/validation-rule-builder.tsx:136)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/validation/rules (apps/dashboard/components/validation-rule-builder.tsx:136)"}, "fullDescription": {"text": "`apps/dashboard/components/validation-rule-builder.tsx:136` calls `POST /api/v1/validation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/validation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0990ba6e654493cb", "name": "Dangling fetch: DELETE /api/v1/validation/rules/${ruleId} (apps/dashboard/components/validation-rule-builder.tsx:160)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/validation/rules/${ruleId} (apps/dashboard/components/validation-rule-builder.tsx:160)"}, "fullDescription": {"text": "`apps/dashboard/components/validation-rule-builder.tsx:160` calls `DELETE /api/v1/validation/rules/${ruleId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/validation/rules/<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-7cd5762e1778d9c2", "name": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-formula-editor.tsx:43)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-formula-editor.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/components/metric-formula-editor.tsx:43` calls `POST /api/v1/metrics/validate-formula` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/metrics/validate-formula`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-58ff4a94efb452c9", "name": "Dangling fetch: POST /api/v1/nlp-config/intents/${id}/apply (apps/dashboard/components/intent-confirmation-dialog.tsx:53", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/${id}/apply (apps/dashboard/components/intent-confirmation-dialog.tsx:53)"}, "fullDescription": {"text": "`apps/dashboard/components/intent-confirmation-dialog.tsx:53` calls `POST /api/v1/nlp-config/intents/${id}/apply` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nlp-config/intents/<p>/apply`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7230fa249834e875", "name": "Dangling fetch: DELETE /api/v1/nlp-config/intents/${id} (apps/dashboard/components/intent-confirmation-dialog.tsx:67)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/${id} (apps/dashboard/components/intent-confirmation-dialog.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/components/intent-confirmation-dialog.tsx:67` calls `DELETE /api/v1/nlp-config/intents/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nlp-config/intents/<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-5e3452ac6f950058", "name": "Dangling fetch: GET /api/v1/providers/registry (apps/dashboard/components/provider-config.tsx:51)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/providers/registry (apps/dashboard/components/provider-config.tsx:51)"}, "fullDescription": {"text": "`apps/dashboard/components/provider-config.tsx:51` calls `GET /api/v1/providers/registry` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/providers/registry`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb95daeae3808761", "name": "Dangling fetch: GET /api/v1/providers (apps/dashboard/components/provider-config.tsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/providers (apps/dashboard/components/provider-config.tsx:52)"}, "fullDescription": {"text": "`apps/dashboard/components/provider-config.tsx:52` calls `GET /api/v1/providers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/providers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce9fa5de2e38f49c", "name": "Dangling fetch: PUT /api/v1/providers/${encodeURIComponent(id)} (apps/dashboard/components/provider-config.tsx:76)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/providers/${encodeURIComponent(id)} (apps/dashboard/components/provider-config.tsx:76)"}, "fullDescription": {"text": "`apps/dashboard/components/provider-config.tsx:76` calls `PUT /api/v1/providers/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/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-f5de26501545b67b", "name": "Dangling fetch: PUT /api/v1/providers/${encodeURIComponent(id)} (apps/dashboard/components/provider-config.tsx:94)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/providers/${encodeURIComponent(id)} (apps/dashboard/components/provider-config.tsx:94)"}, "fullDescription": {"text": "`apps/dashboard/components/provider-config.tsx:94` calls `PUT /api/v1/providers/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/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-7b852ac3ef8b67c5", "name": "Dangling fetch: POST /api/v1/backups/${backupId}/restore-to-point (apps/dashboard/components/point-in-time-restore-wizar", "shortDescription": {"text": "Dangling fetch: POST /api/v1/backups/${backupId}/restore-to-point (apps/dashboard/components/point-in-time-restore-wizard.tsx:30)"}, "fullDescription": {"text": "`apps/dashboard/components/point-in-time-restore-wizard.tsx:30` calls `POST /api/v1/backups/${backupId}/restore-to-point` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/backups/<p>/restore-to-point`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c067152e44e152af", "name": "Dangling fetch: POST /api/v1/entities/import (apps/dashboard/components/import-wizard.tsx:76)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/dashboard/components/import-wizard.tsx:76)"}, "fullDescription": {"text": "`apps/dashboard/components/import-wizard.tsx:76` calls `POST /api/v1/entities/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/import`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2fd3d9c58771245", "name": "Dangling fetch: POST /api/v1/index-repair/rebuild (apps/dashboard/components/rebuild-progress-panel.tsx:40)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/index-repair/rebuild (apps/dashboard/components/rebuild-progress-panel.tsx:40)"}, "fullDescription": {"text": "`apps/dashboard/components/rebuild-progress-panel.tsx:40` calls `POST /api/v1/index-repair/rebuild` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/index-repair/rebuild`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65f6cb857da426f6", "name": "Dangling fetch: GET /api/v1/workspace/export/jobs (apps/dashboard/components/backup-manager.tsx:38)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/export/jobs (apps/dashboard/components/backup-manager.tsx:38)"}, "fullDescription": {"text": "`apps/dashboard/components/backup-manager.tsx:38` calls `GET /api/v1/workspace/export/jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/export/jobs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a1aa59572af3ace", "name": "Dangling fetch: POST /api/v1/workspace/export/${exportType} (apps/dashboard/components/backup-manager.tsx:61)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/export/${exportType} (apps/dashboard/components/backup-manager.tsx:61)"}, "fullDescription": {"text": "`apps/dashboard/components/backup-manager.tsx:61` calls `POST /api/v1/workspace/export/${exportType}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/export/<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-7b9fc9d17b431a0f", "name": "Dangling fetch: GET /api/v1/workspace/export/jobs/${jobId} (apps/dashboard/components/backup-manager.tsx:85)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/export/jobs/${jobId} (apps/dashboard/components/backup-manager.tsx:85)"}, "fullDescription": {"text": "`apps/dashboard/components/backup-manager.tsx:85` calls `GET /api/v1/workspace/export/jobs/${jobId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/export/jobs/<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-081f33c3f112d904", "name": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-preview.tsx:36)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-preview.tsx:36)"}, "fullDescription": {"text": "`apps/dashboard/components/metric-preview.tsx:36` calls `POST /api/v1/metrics/validate-formula` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/metrics/validate-formula`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b64a704eff15417", "name": "Dangling fetch: GET /api/v1/admin/connectors/${connectorId}/circuit-status (apps/dashboard/components/circuit-breaker-in", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/connectors/${connectorId}/circuit-status (apps/dashboard/components/circuit-breaker-indicator.tsx:52)"}, "fullDescription": {"text": "`apps/dashboard/components/circuit-breaker-indicator.tsx:52` calls `GET /api/v1/admin/connectors/${connectorId}/circuit-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/connectors/<p>/circuit-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-4f60e1c76325a7d6", "name": "Dangling fetch: POST /api/v1/admin/connectors/${connectorId}/circuit-reset (apps/dashboard/components/circuit-breaker-in", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/connectors/${connectorId}/circuit-reset (apps/dashboard/components/circuit-breaker-indicator.tsx:78)"}, "fullDescription": {"text": "`apps/dashboard/components/circuit-breaker-indicator.tsx:78` calls `POST /api/v1/admin/connectors/${connectorId}/circuit-reset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/connectors/<p>/circuit-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-de151681a817a76b", "name": "Dangling fetch: POST /api/v1/recipes/${recipe.id}/clone (apps/dashboard/components/recipe-installer.tsx:29)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/recipes/${recipe.id}/clone (apps/dashboard/components/recipe-installer.tsx:29)"}, "fullDescription": {"text": "`apps/dashboard/components/recipe-installer.tsx:29` calls `POST /api/v1/recipes/${recipe.id}/clone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/recipes/<p>/clone`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d38e32428d351f7", "name": "Dangling fetch: POST /api/v1/recipes/${recipe.id}/apply-to-workspace (apps/dashboard/components/recipe-installer.tsx:40)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/recipes/${recipe.id}/apply-to-workspace (apps/dashboard/components/recipe-installer.tsx:40)"}, "fullDescription": {"text": "`apps/dashboard/components/recipe-installer.tsx:40` calls `POST /api/v1/recipes/${recipe.id}/apply-to-workspace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/recipes/<p>/apply-to-workspace`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c56d770ee7f76f5b", "name": "Dangling fetch: GET /api/v1/enrichment/gaps?${params} (apps/dashboard/components/enrichment-gap-histogram.tsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/enrichment/gaps?${params} (apps/dashboard/components/enrichment-gap-histogram.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/components/enrichment-gap-histogram.tsx:33` calls `GET /api/v1/enrichment/gaps?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichment/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-0df518167467d1ea", "name": "Dangling fetch: GET /api/v1/scim/v2/Users?count=50 (apps/dashboard/app/settings/default/directory/page.tsx:31)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/scim/v2/Users?count=50 (apps/dashboard/app/settings/default/directory/page.tsx:31)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/default/directory/page.tsx:31` calls `GET /api/v1/scim/v2/Users?count=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/scim/v2/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a08a6ed66b6a841d", "name": "Dangling fetch: GET /api/v1/workspace/deletion/status (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:65)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/deletion/status (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:65)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:65` calls `GET /api/v1/workspace/deletion/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/deletion/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-bac29a161d3cfaef", "name": "Dangling fetch: POST /api/v1/workspace/deletion/request (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:85)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/deletion/request (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:85)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:85` calls `POST /api/v1/workspace/deletion/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/deletion/request`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3cff28896e97cea7", "name": "Dangling fetch: PUT /api/v1/workspace/deletion/cancel (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:106)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/workspace/deletion/cancel (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:106)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:106` calls `PUT /api/v1/workspace/deletion/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/deletion/cancel`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2869752c87a05e92", "name": "Dangling fetch: GET /api/v1/workspace/alerts/rules (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/alerts/rules (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:47)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:47` calls `GET /api/v1/workspace/alerts/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9433a7de6f6399aa", "name": "Dangling fetch: GET /api/v1/workspace/alerts/channels (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:48)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/alerts/channels (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:48)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:48` calls `GET /api/v1/workspace/alerts/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f56ae070e80e136", "name": "Dangling fetch: GET /api/v1/workspace/alerts/events?limit=20 (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspace/alerts/events?limit=20 (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:49)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:49` calls `GET /api/v1/workspace/alerts/events?limit=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-85d0aeb3daa13754", "name": "Dangling fetch: DELETE /api/v1/workspace/alerts/rules/${ruleId} (apps/dashboard/app/settings/[workspaceId]/alerts/page.t", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/workspace/alerts/rules/${ruleId} (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:70)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:70` calls `DELETE /api/v1/workspace/alerts/rules/${ruleId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/rules/<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-849fbf9eea43562f", "name": "Dangling fetch: DELETE /api/v1/workspace/alerts/channels/${channelId} (apps/dashboard/app/settings/[workspaceId]/alerts/", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/workspace/alerts/channels/${channelId} (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:75)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:75` calls `DELETE /api/v1/workspace/alerts/channels/${channelId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/channels/<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-31b0863c9c6bcad9", "name": "Dangling fetch: POST /api/v1/workspace/alerts/evaluate (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:80)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/workspace/alerts/evaluate (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:80)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:80` calls `POST /api/v1/workspace/alerts/evaluate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspace/alerts/evaluate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b23e3393f5d6c9e3", "name": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28)"}, "fullDescription": {"text": "`apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28` calls `GET /api/v1/nlp-config/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nlp-config/intents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-14062a21b5016a0f", "name": "Dangling fetch: GET /api/v1/marketplace/connectors?${params.toString()} (apps/dashboard/app/marketplace/page.tsx:26)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors?${params.toString()} (apps/dashboard/app/marketplace/page.tsx:26)"}, "fullDescription": {"text": "`apps/dashboard/app/marketplace/page.tsx:26` calls `GET /api/v1/marketplace/connectors?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6763d7c93560cb60", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/${connectorId}/install (apps/dashboard/app/marketplace/page.tsx:44)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/${connectorId}/install (apps/dashboard/app/marketplace/page.tsx:44)"}, "fullDescription": {"text": "`apps/dashboard/app/marketplace/page.tsx:44` calls `POST /api/v1/marketplace/connectors/${connectorId}/install` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/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-fed975b1cebfc65e", "name": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)} (apps/dashboard/app/marketplace/[connectorI", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)} (apps/dashboard/app/marketplace/[connectorId]/page.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/app/marketplace/[connectorId]/page.tsx:33` calls `GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<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-8beab6571f27d1e7", "name": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/reviews (apps/dashboard/app/marketplace/[co", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/reviews (apps/dashboard/app/marketplace/[connectorId]/page.tsx:36)"}, "fullDescription": {"text": "`apps/dashboard/app/marketplace/[connectorId]/page.tsx:36` calls `GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/reviews` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/reviews`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2eec91743e8b762d", "name": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/versions (apps/dashboard/app/marketplace/[c", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/versions (apps/dashboard/app/marketplace/[connectorId]/page.tsx:39)"}, "fullDescription": {"text": "`apps/dashboard/app/marketplace/[connectorId]/page.tsx:39` calls `GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b82794cbd252cd9f", "name": "Dangling fetch: POST /api/v1/marketplace/connectors/${encodeURIComponent(id)}/install (apps/dashboard/app/marketplace/[c", "shortDescription": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/${encodeURIComponent(id)}/install (apps/dashboard/app/marketplace/[connectorId]/page.tsx:70)"}, "fullDescription": {"text": "`apps/dashboard/app/marketplace/[connectorId]/page.tsx:70` calls `POST /api/v1/marketplace/connectors/${encodeURIComponent(id)}/install` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/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-166ae5bccda16fe9", "name": "Dangling fetch: GET /api/v1/benchmarks/opt-in (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/opt-in (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71` calls `GET /api/v1/benchmarks/opt-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/benchmarks/opt-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e15b5433c981031", "name": "Dangling fetch: GET /api/v1/benchmarks/peers (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:79)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/benchmarks/peers (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:79)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:79` calls `GET /api/v1/benchmarks/peers` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/benchmarks/peers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8656b2b06a432d69", "name": "Dangling fetch: POST /api/v1/benchmarks/opt-in (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:93)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/benchmarks/opt-in (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:93)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:93` calls `POST /api/v1/benchmarks/opt-in` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/benchmarks/opt-in`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10e8c24425c26968", "name": "Dangling fetch: POST /api/v1/benchmarks/opt-out (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:109)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/benchmarks/opt-out (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:109)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:109` calls `POST /api/v1/benchmarks/opt-out` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/benchmarks/opt-out`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0ec15f96af1c37d", "name": "Dangling fetch: GET /api/v1/tracing/traces?workspaceId=${workspaceId} (apps/dashboard/app/analytics/[workspaceId]/traces", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tracing/traces?workspaceId=${workspaceId} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:41)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:41` calls `GET /api/v1/tracing/traces?workspaceId=${workspaceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/tracing/traces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eadfdc7271904ad5", "name": "Dangling fetch: GET /api/v1/tracing/latency?operation=${encodeURIComponent(op)} (apps/dashboard/app/analytics/[workspace", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tracing/latency?operation=${encodeURIComponent(op)} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:48)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:48` calls `GET /api/v1/tracing/latency?operation=${encodeURIComponent(op)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/tracing/latency`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae1cd7b727bd5c3e", "name": "Dangling fetch: GET /api/v1/tracing/traces/${traceId} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tracing/traces/${traceId} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:62` calls `GET /api/v1/tracing/traces/${traceId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/tracing/traces/<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-9263c179b8331b5c", "name": "Dangling fetch: GET /api/v1/analytics/queries?limitHours=168 (apps/dashboard/app/analytics/[workspaceId]/queries/page.ts", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/queries?limitHours=168 (apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:62` calls `GET /api/v1/analytics/queries?limitHours=168` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/queries`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e6d7ba31caf471e", "name": "Dangling fetch: POST /api/v1/analytics/queries/detect-patterns (apps/dashboard/app/analytics/[workspaceId]/queries/page.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/analytics/queries/detect-patterns (apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:82)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:82` calls `POST /api/v1/analytics/queries/detect-patterns` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/queries/detect-patterns`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f8a7954a987b9b66", "name": "Dangling fetch: POST /api/v1/analytics/cache-warming/trigger (apps/dashboard/app/analytics/[workspaceId]/queries/page.ts", "shortDescription": {"text": "Dangling fetch: POST /api/v1/analytics/cache-warming/trigger (apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:104)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:104` calls `POST /api/v1/analytics/cache-warming/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/cache-warming/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1db69692026c9b52", "name": "Dangling fetch: GET /api/v1/analytics/metrics/query_latency?window=${window} (apps/dashboard/app/analytics/[workspaceId]", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/query_latency?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:23)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:23` calls `GET /api/v1/analytics/metrics/query_latency?window=${window}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/metrics/query_latency`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89b517f0082d5be7", "name": "Dangling fetch: GET /api/v1/analytics/metrics/tokens_saved?window=${window} (apps/dashboard/app/analytics/[workspaceId]/", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/tokens_saved?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:24)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:24` calls `GET /api/v1/analytics/metrics/tokens_saved?window=${window}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/metrics/tokens_saved`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b98d583259904d84", "name": "Dangling fetch: GET /api/v1/analytics/metrics/connector_error?window=${window} (apps/dashboard/app/analytics/[workspaceI", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/connector_error?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:25)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:25` calls `GET /api/v1/analytics/metrics/connector_error?window=${window}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/metrics/connector_error`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-938d22d97a46ba0e", "name": "Dangling fetch: GET /api/v1/analytics/metrics/query_latency/anomalies?hours=24 (apps/dashboard/app/analytics/[workspaceI", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/query_latency/anomalies?hours=24 (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:26)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:26` calls `GET /api/v1/analytics/metrics/query_latency/anomalies?hours=24` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/metrics/query_latency/anomalies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf3cc30695f6b8be", "name": "Dangling fetch: GET /api/v1/analytics/dashboards/token-efficiency?window=${window} (apps/dashboard/app/analytics/[worksp", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/dashboards/token-efficiency?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:27)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:27` calls `GET /api/v1/analytics/dashboards/token-efficiency?window=${window}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/dashboards/token-efficiency`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-936dff76b212f420", "name": "Dangling fetch: GET /api/v1/analytics/index?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/app/analytics", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/index?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/app/analytics/[workspaceId]/composition/page.tsx:88)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/composition/page.tsx:88` calls `GET /api/v1/analytics/index?workspaceId=${encodeURIComponent(workspaceId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/index`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9cf5167b883ebd8", "name": "Dangling fetch: GET /api/v1/analytics/index/snapshots?workspaceId=${encodeURIComponent(workspaceId)}&days=30 (apps/dashb", "shortDescription": {"text": "Dangling fetch: GET /api/v1/analytics/index/snapshots?workspaceId=${encodeURIComponent(workspaceId)}&days=30 (apps/dashboard/app/analytics/[workspaceId]/composition/page.tsx:89)"}, "fullDescription": {"text": "`apps/dashboard/app/analytics/[workspaceId]/composition/page.tsx:89` calls `GET /api/v1/analytics/index/snapshots?workspaceId=${encodeURIComponent(workspaceId)}&days=30` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/analytics/index/snapshots`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f804469764139d0", "name": "Dangling fetch: GET /api/v1/lineage (apps/dashboard/app/data-lineage/page.tsx:30)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/lineage (apps/dashboard/app/data-lineage/page.tsx:30)"}, "fullDescription": {"text": "`apps/dashboard/app/data-lineage/page.tsx:30` calls `GET /api/v1/lineage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25b6aedb9ebec3ac", "name": "Dangling fetch: POST /api/v1/mcp/stream (apps/dashboard/app/mcp/stream-tester/page.tsx:88)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/dashboard/app/mcp/stream-tester/page.tsx:88)"}, "fullDescription": {"text": "`apps/dashboard/app/mcp/stream-tester/page.tsx:88` calls `POST /api/v1/mcp/stream` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/mcp/stream`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b9c232e34ec3b50", "name": "Dangling fetch: GET /api/v1/mcp/resources?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/app/mcp/resourc", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/app/mcp/resources/page.tsx:26)"}, "fullDescription": {"text": "`apps/dashboard/app/mcp/resources/page.tsx:26` calls `GET /api/v1/mcp/resources?workspaceId=${encodeURIComponent(workspaceId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/mcp/resources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bee8ce40d46d3a8e", "name": "Dangling fetch: GET /api/v1/mcp/resources/uri?${params.toString()} (apps/dashboard/app/mcp/resources/page.tsx:40)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/mcp/resources/uri?${params.toString()} (apps/dashboard/app/mcp/resources/page.tsx:40)"}, "fullDescription": {"text": "`apps/dashboard/app/mcp/resources/page.tsx:40` calls `GET /api/v1/mcp/resources/uri?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/mcp/resources/uri`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39496b62c993694d", "name": "Dangling fetch: POST /api/v1/metrics (apps/dashboard/app/workspace/[workspaceId]/metrics/builder/page.tsx:29)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/metrics (apps/dashboard/app/workspace/[workspaceId]/metrics/builder/page.tsx:29)"}, "fullDescription": {"text": "`apps/dashboard/app/workspace/[workspaceId]/metrics/builder/page.tsx:29` calls `POST /api/v1/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/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-5d1354da6eeb4669", "name": "Dangling fetch: GET /api/v1/insights?${params} (apps/dashboard/app/insights/page.tsx:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/insights?${params} (apps/dashboard/app/insights/page.tsx:52)"}, "fullDescription": {"text": "`apps/dashboard/app/insights/page.tsx:52` calls `GET /api/v1/insights?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/insights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-248e51ded4b12372", "name": "Dangling fetch: POST /api/v1/insights/${id}/feedback (apps/dashboard/app/insights/page.tsx:63)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/insights/${id}/feedback (apps/dashboard/app/insights/page.tsx:63)"}, "fullDescription": {"text": "`apps/dashboard/app/insights/page.tsx:63` calls `POST /api/v1/insights/${id}/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/insights/<p>/feedback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e0724cfd9ea73876", "name": "Dangling fetch: GET /api/v1/workspaces/default/index-expansion-recommendations (apps/dashboard/app/insights/query-recomm", "shortDescription": {"text": "Dangling fetch: GET /api/v1/workspaces/default/index-expansion-recommendations (apps/dashboard/app/insights/query-recommendations/page.tsx:25)"}, "fullDescription": {"text": "`apps/dashboard/app/insights/query-recommendations/page.tsx:25` calls `GET /api/v1/workspaces/default/index-expansion-recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/workspaces/default/index-expansion-recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b2bd375a36e5166", "name": "Dangling fetch: POST /api/v1/search (apps/dashboard/app/search/page.tsx:94)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/search (apps/dashboard/app/search/page.tsx:94)"}, "fullDescription": {"text": "`apps/dashboard/app/search/page.tsx:94` calls `POST /api/v1/search` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/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-b996d1c3b95e9d9e", "name": "Dangling fetch: GET /api/v1/recipes/shared (apps/dashboard/app/recipes/page.tsx:23)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/recipes/shared (apps/dashboard/app/recipes/page.tsx:23)"}, "fullDescription": {"text": "`apps/dashboard/app/recipes/page.tsx:23` calls `GET /api/v1/recipes/shared` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/recipes/shared`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0c3b48f4052117ea", "name": "Dangling fetch: GET /api/v1/recipes/predefined (apps/dashboard/app/recipes/page.tsx:28)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/recipes/predefined (apps/dashboard/app/recipes/page.tsx:28)"}, "fullDescription": {"text": "`apps/dashboard/app/recipes/page.tsx:28` calls `GET /api/v1/recipes/predefined` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/recipes/predefined`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b39584062280d29", "name": "Dangling fetch: POST /api/v1/recipes/templates (apps/dashboard/app/recipes/page.tsx:64)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/recipes/templates (apps/dashboard/app/recipes/page.tsx:64)"}, "fullDescription": {"text": "`apps/dashboard/app/recipes/page.tsx:64` calls `POST /api/v1/recipes/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/recipes/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0f189e7eaa8ec423", "name": "Dangling fetch: GET /api/v1/admin/workspaces (apps/dashboard/app/admin/page.tsx:73)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/workspaces (apps/dashboard/app/admin/page.tsx:73)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/page.tsx:73` calls `GET /api/v1/admin/workspaces` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/workspaces`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11b44a0c4b934b36", "name": "Dangling fetch: GET /api/v1/admin/system-health (apps/dashboard/app/admin/page.tsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/system-health (apps/dashboard/app/admin/page.tsx:91)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/page.tsx:91` calls `GET /api/v1/admin/system-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/system-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-a25d3ebb3a802bbc", "name": "Dangling fetch: GET /api/v1/admin/errors?days=7 (apps/dashboard/app/admin/page.tsx:105)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/errors?days=7 (apps/dashboard/app/admin/page.tsx:105)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/page.tsx:105` calls `GET /api/v1/admin/errors?days=7` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/errors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d28f1ee6660a446", "name": "Dangling fetch: GET http://localhost:3001/api/v1/admin/system-health (apps/dashboard/app/admin/__tests__/overview.test.t", "shortDescription": {"text": "Dangling fetch: GET http://localhost:3001/api/v1/admin/system-health (apps/dashboard/app/admin/__tests__/overview.test.tsx:81)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/__tests__/overview.test.tsx:81` calls `GET http://localhost:3001/api/v1/admin/system-health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:3001/api/v1/admin/system-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-5869ea3ea5d62348", "name": "Dangling fetch: GET /api/v1/admin/rules (apps/dashboard/app/admin/data-rules/page.tsx:62)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/rules (apps/dashboard/app/admin/data-rules/page.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-rules/page.tsx:62` calls `GET /api/v1/admin/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-96293d43a7a8cab4", "name": "Dangling fetch: GET /api/v1/admin/rules/violations (apps/dashboard/app/admin/data-rules/page.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/rules/violations (apps/dashboard/app/admin/data-rules/page.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-rules/page.tsx:67` calls `GET /api/v1/admin/rules/violations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/rules/violations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1966f1949153cace", "name": "Dangling fetch: POST /api/v1/admin/rules (apps/dashboard/app/admin/data-rules/page.tsx:72)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/dashboard/app/admin/data-rules/page.tsx:72)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-rules/page.tsx:72` calls `POST /api/v1/admin/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2dcb8eb00f20b0b7", "name": "Dangling fetch: GET /api/v1/backups (apps/dashboard/app/admin/backup-recovery/page.tsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/backups (apps/dashboard/app/admin/backup-recovery/page.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/backup-recovery/page.tsx:33` calls `GET /api/v1/backups` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/backups`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61bf1b940e349012", "name": "Dangling fetch: GET /api/v1/backups/metrics (apps/dashboard/app/admin/backup-recovery/page.tsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/backups/metrics (apps/dashboard/app/admin/backup-recovery/page.tsx:34)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/backup-recovery/page.tsx:34` calls `GET /api/v1/backups/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/backups/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-25267b9c2d8a3ec2", "name": "Dangling fetch: POST /api/v1/backups/full (apps/dashboard/app/admin/backup-recovery/page.tsx:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/backups/full (apps/dashboard/app/admin/backup-recovery/page.tsx:52)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/backup-recovery/page.tsx:52` calls `POST /api/v1/backups/full` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/backups/full`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67b67254af25fc98", "name": "Dangling fetch: POST /api/v1/backups/incremental (apps/dashboard/app/admin/backup-recovery/page.tsx:78)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/backups/incremental (apps/dashboard/app/admin/backup-recovery/page.tsx:78)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/backup-recovery/page.tsx:78` calls `POST /api/v1/backups/incremental` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/backups/incremental`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0db3f1ea053bbc2", "name": "Dangling fetch: POST /api/v1/backups/prune (apps/dashboard/app/admin/backup-recovery/page.tsx:98)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/backups/prune (apps/dashboard/app/admin/backup-recovery/page.tsx:98)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/backup-recovery/page.tsx:98` calls `POST /api/v1/backups/prune` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/backups/prune`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-307f4d5763847001", "name": "Dangling fetch: GET /api/v1/health-scorecards/health-summary?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/conne", "shortDescription": {"text": "Dangling fetch: GET /api/v1/health-scorecards/health-summary?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:54)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-health-scorecard/page.tsx:54` calls `GET /api/v1/health-scorecards/health-summary?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/health-scorecards/health-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-520e808f37e6aa8d", "name": "Dangling fetch: GET /api/v1/health-scorecards/incidents?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-", "shortDescription": {"text": "Dangling fetch: GET /api/v1/health-scorecards/incidents?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:64)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-health-scorecard/page.tsx:64` calls `GET /api/v1/health-scorecards/incidents?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/health-scorecards/incidents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10aea46d254d875c", "name": "Dangling fetch: GET /api/v1/health-scorecards/${connectorId}/sla-breaches?workspaceId=${WORKSPACE_ID} (apps/dashboard/ap", "shortDescription": {"text": "Dangling fetch: GET /api/v1/health-scorecards/${connectorId}/sla-breaches?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:74)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-health-scorecard/page.tsx:74` calls `GET /api/v1/health-scorecards/${connectorId}/sla-breaches?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/health-scorecards/<p>/sla-breaches`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-73b78982064d71dd", "name": "Dangling fetch: POST /api/v1/health-scorecards/incidents/${alertId}/resolve (apps/dashboard/app/admin/connector-health-s", "shortDescription": {"text": "Dangling fetch: POST /api/v1/health-scorecards/incidents/${alertId}/resolve (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:92)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-health-scorecard/page.tsx:92` calls `POST /api/v1/health-scorecards/incidents/${alertId}/resolve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/health-scorecards/incidents/<p>/resolve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccebfa7971928b1c", "name": "Dangling fetch: POST /api/v1/health-scorecards/${connectorId}/recovery (apps/dashboard/app/admin/connector-health-scorec", "shortDescription": {"text": "Dangling fetch: POST /api/v1/health-scorecards/${connectorId}/recovery (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:101)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-health-scorecard/page.tsx:101` calls `POST /api/v1/health-scorecards/${connectorId}/recovery` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/health-scorecards/<p>/recovery`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a458b8b6086dd3eb", "name": "Dangling fetch: GET /api/v1/health-scorecards/${connectorId}/recovery-suggestions?workspaceId=${WORKSPACE_ID} (apps/dash", "shortDescription": {"text": "Dangling fetch: GET /api/v1/health-scorecards/${connectorId}/recovery-suggestions?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:109)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-health-scorecard/page.tsx:109` calls `GET /api/v1/health-scorecards/${connectorId}/recovery-suggestions?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/health-scorecards/<p>/recovery-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d20739caa31d477", "name": "Dangling fetch: GET /api/v1/marketplace/connectors?isPublished=false (apps/dashboard/app/admin/marketplace-curation/page", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors?isPublished=false (apps/dashboard/app/admin/marketplace-curation/page.tsx:31)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/marketplace-curation/page.tsx:31` calls `GET /api/v1/marketplace/connectors?isPublished=false` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3377fff098b72451", "name": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/dashboard/app/admin/marketplace-curation/page.tsx:32)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/dashboard/app/admin/marketplace-curation/page.tsx:32)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/marketplace-curation/page.tsx:32` calls `GET /api/v1/marketplace/connectors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3678707be3aed17f", "name": "Dangling fetch: PUT /api/v1/marketplace/connectors/${connectorId}/curate (apps/dashboard/app/admin/marketplace-curation/", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/marketplace/connectors/${connectorId}/curate (apps/dashboard/app/admin/marketplace-curation/page.tsx:55)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/marketplace-curation/page.tsx:55` calls `PUT /api/v1/marketplace/connectors/${connectorId}/curate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/marketplace/connectors/<p>/curate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-069913bbcb1290dd", "name": "Dangling fetch: GET /api/v1/nl-queries/sessions (apps/dashboard/app/admin/query-sessions/page.tsx:34)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/nl-queries/sessions (apps/dashboard/app/admin/query-sessions/page.tsx:34)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-sessions/page.tsx:34` calls `GET /api/v1/nl-queries/sessions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nl-queries/sessions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-160468b49d33352e", "name": "Dangling fetch: GET /api/v1/nl-queries/sessions/${sessionId} (apps/dashboard/app/admin/query-sessions/page.tsx:45)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/nl-queries/sessions/${sessionId} (apps/dashboard/app/admin/query-sessions/page.tsx:45)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-sessions/page.tsx:45` calls `GET /api/v1/nl-queries/sessions/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nl-queries/sessions/<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-476f5587981005f1", "name": "Dangling fetch: POST /api/v1/nl-queries/sessions/${sessionId}/favorite (apps/dashboard/app/admin/query-sessions/page.tsx", "shortDescription": {"text": "Dangling fetch: POST /api/v1/nl-queries/sessions/${sessionId}/favorite (apps/dashboard/app/admin/query-sessions/page.tsx:53)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-sessions/page.tsx:53` calls `POST /api/v1/nl-queries/sessions/${sessionId}/favorite` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nl-queries/sessions/<p>/favorite`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0bded389d2548f57", "name": "Dangling fetch: DELETE /api/v1/nl-queries/sessions/${sessionId}/question/${questionIndex} (apps/dashboard/app/admin/quer", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/nl-queries/sessions/${sessionId}/question/${questionIndex} (apps/dashboard/app/admin/query-sessions/page.tsx:61)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-sessions/page.tsx:61` calls `DELETE /api/v1/nl-queries/sessions/${sessionId}/question/${questionIndex}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/nl-queries/sessions/<p>/question/<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-8de1b5d54a2bcd82", "name": "Dangling fetch: GET /api/v1/admin/pii/fields (apps/dashboard/app/admin/pii-config/page.tsx:67)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/pii/fields (apps/dashboard/app/admin/pii-config/page.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/pii-config/page.tsx:67` calls `GET /api/v1/admin/pii/fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/pii/fields`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a2d93a2c5ef38dd", "name": "Dangling fetch: GET /api/v1/admin/pii/access-audit?limit=50 (apps/dashboard/app/admin/pii-config/page.tsx:81)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/pii/access-audit?limit=50 (apps/dashboard/app/admin/pii-config/page.tsx:81)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/pii-config/page.tsx:81` calls `GET /api/v1/admin/pii/access-audit?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: `/v1/admin/pii/access-audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-490cdf9c5cc93c1e", "name": "Dangling fetch: PUT /api/v1/admin/pii/fields/${connectorId}/${fieldName}/strategy (apps/dashboard/app/admin/pii-config/p", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/${connectorId}/${fieldName}/strategy (apps/dashboard/app/admin/pii-config/page.tsx:97)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/pii-config/page.tsx:97` calls `PUT /api/v1/admin/pii/fields/${connectorId}/${fieldName}/strategy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/pii/fields/<p>/<p>/strategy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e95913f29b4f68e8", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/dashboard/app/admin/pii-config/page.tsx:106)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/dashboard/app/admin/pii-config/page.tsx:106)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/pii-config/page.tsx:106` calls `POST /api/v1/admin/pii/fields/bulk-rule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/pii/fields/bulk-rule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-19443af0a6be69ff", "name": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/dashboard/app/admin/pii-config/page.tsx:116)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/dashboard/app/admin/pii-config/page.tsx:116)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/pii-config/page.tsx:116` calls `POST /api/v1/admin/pii/fields/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/pii/fields/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-e1f3b0bd782b7cb3", "name": "Dangling fetch: POST /api/v1/connector-benchmarks/benchmark-matrix (apps/dashboard/app/admin/connector-benchmarks/page.t", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connector-benchmarks/benchmark-matrix (apps/dashboard/app/admin/connector-benchmarks/page.tsx:53)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-benchmarks/page.tsx:53` calls `POST /api/v1/connector-benchmarks/benchmark-matrix` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connector-benchmarks/benchmark-matrix`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-738a494b8535a06b", "name": "Dangling fetch: POST /api/v1/connector-benchmarks/${selectedConnector}/benchmark (apps/dashboard/app/admin/connector-ben", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connector-benchmarks/${selectedConnector}/benchmark (apps/dashboard/app/admin/connector-benchmarks/page.tsx:84)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/connector-benchmarks/page.tsx:84` calls `POST /api/v1/connector-benchmarks/${selectedConnector}/benchmark` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connector-benchmarks/<p>/benchmark`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a05696e684c909f4", "name": "Dangling fetch: GET /api/v1/admin/performance/summary?days=${days} (apps/dashboard/app/admin/performance/page.tsx:92)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/performance/summary?days=${days} (apps/dashboard/app/admin/performance/page.tsx:92)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/performance/page.tsx:92` calls `GET /api/v1/admin/performance/summary?days=${days}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/performance/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-35c68fe242bde32b", "name": "Dangling fetch: GET /api/v1/admin/performance/connectors/${connectorId}?days=${days} (apps/dashboard/app/admin/performan", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/performance/connectors/${connectorId}?days=${days} (apps/dashboard/app/admin/performance/page.tsx:109)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/performance/page.tsx:109` calls `GET /api/v1/admin/performance/connectors/${connectorId}?days=${days}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/performance/connectors/<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-f0056dcea2f97e21", "name": "Dangling fetch: GET /api/v1/entity-change-subscriptions (apps/dashboard/app/admin/subscription-manager/page.tsx:26)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entity-change-subscriptions (apps/dashboard/app/admin/subscription-manager/page.tsx:26)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/subscription-manager/page.tsx:26` calls `GET /api/v1/entity-change-subscriptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entity-change-subscriptions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c64c0e3a371214b", "name": "Dangling fetch: DELETE /api/v1/entity-change-subscriptions/${id} (apps/dashboard/app/admin/subscription-manager/page.tsx", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/entity-change-subscriptions/${id} (apps/dashboard/app/admin/subscription-manager/page.tsx:42)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/subscription-manager/page.tsx:42` calls `DELETE /api/v1/entity-change-subscriptions/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entity-change-subscriptions/<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-084a65b15747c8d5", "name": "Dangling fetch: POST /api/v1/enrichments/configure/${source.id} (apps/dashboard/app/admin/enrichment-setup/page.tsx:58)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/enrichments/configure/${source.id} (apps/dashboard/app/admin/enrichment-setup/page.tsx:58)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/enrichment-setup/page.tsx:58` calls `POST /api/v1/enrichments/configure/${source.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/enrichments/configure/<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-f652652c1455954f", "name": "Dangling fetch: GET /api/v1/admin/api-versions (apps/dashboard/app/admin/api-versioning/page.tsx:31)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/api-versions (apps/dashboard/app/admin/api-versioning/page.tsx:31)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/api-versioning/page.tsx:31` calls `GET /api/v1/admin/api-versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/api-versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38802376fe369d8d", "name": "Dangling fetch: GET /api/v1/admin/api-versions/${v.version}/deprecated (apps/dashboard/app/admin/api-versioning/page.tsx", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/api-versions/${v.version}/deprecated (apps/dashboard/app/admin/api-versioning/page.tsx:39)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/api-versioning/page.tsx:39` calls `GET /api/v1/admin/api-versions/${v.version}/deprecated` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/api-versions/<p>/deprecated`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-636178266d2c97e7", "name": "Dangling fetch: GET /api/v1/compliance/report/${framework} (apps/dashboard/app/admin/compliance/page.tsx:60)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/compliance/report/${framework} (apps/dashboard/app/admin/compliance/page.tsx:60)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/compliance/page.tsx:60` calls `GET /api/v1/compliance/report/${framework}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/compliance/report/<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-6bcb23c23efee44b", "name": "Dangling fetch: GET /api/v1/admin/analytics/queries/slow?days=${days} (apps/dashboard/app/admin/query-analytics/page.tsx", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/analytics/queries/slow?days=${days} (apps/dashboard/app/admin/query-analytics/page.tsx:56)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-analytics/page.tsx:56` calls `GET /api/v1/admin/analytics/queries/slow?days=${days}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/analytics/queries/slow`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6d1445117e62168", "name": "Dangling fetch: GET /api/v1/admin/analytics/queries/patterns?days=${days} (apps/dashboard/app/admin/query-analytics/page", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/analytics/queries/patterns?days=${days} (apps/dashboard/app/admin/query-analytics/page.tsx:57)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-analytics/page.tsx:57` calls `GET /api/v1/admin/analytics/queries/patterns?days=${days}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/analytics/queries/patterns`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0cb57dd678f8759", "name": "Dangling fetch: GET /api/v1/admin/analytics/index-recommendations (apps/dashboard/app/admin/query-analytics/page.tsx:58)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/analytics/index-recommendations (apps/dashboard/app/admin/query-analytics/page.tsx:58)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-analytics/page.tsx:58` calls `GET /api/v1/admin/analytics/index-recommendations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/analytics/index-recommendations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d248614d963b6fe", "name": "Dangling fetch: GET /api/v1/admin/slos (apps/dashboard/app/admin/slos/page.tsx:42)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/slos (apps/dashboard/app/admin/slos/page.tsx:42)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/slos/page.tsx:42` calls `GET /api/v1/admin/slos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/slos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ddbbb295e47d40f", "name": "Dangling fetch: GET /api/v1/admin/slos/violations (apps/dashboard/app/admin/slos/page.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/slos/violations (apps/dashboard/app/admin/slos/page.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/slos/page.tsx:43` calls `GET /api/v1/admin/slos/violations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/slos/violations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9abe568103b97fc", "name": "Dangling fetch: GET /api/v1/admin/dedup/clusters/${clusterId}/members (apps/dashboard/app/admin/dedup-analysis/page.tsx:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters/${clusterId}/members (apps/dashboard/app/admin/dedup-analysis/page.tsx:53)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/dedup-analysis/page.tsx:53` calls `GET /api/v1/admin/dedup/clusters/${clusterId}/members` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/dedup/clusters/<p>/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcc82e4e06475781", "name": "Dangling fetch: GET /api/v1/admin/dedup/compare?entity1=${id1}&entity2=${id2} (apps/dashboard/app/admin/dedup-analysis/p", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/dedup/compare?entity1=${id1}&entity2=${id2} (apps/dashboard/app/admin/dedup-analysis/page.tsx:70)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/dedup-analysis/page.tsx:70` calls `GET /api/v1/admin/dedup/compare?entity1=${id1}&entity2=${id2}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/dedup/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-cae7d5d35c6967ea", "name": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/dashboard/app/admin/dedup-analysis/page.tsx:86)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/dashboard/app/admin/dedup-analysis/page.tsx:86)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/dedup-analysis/page.tsx:86` calls `POST /api/v1/admin/dedup/merge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/dedup/merge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a6cade8997a603e", "name": "Dangling fetch: GET /api/v1/admin/index/health?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/index-health/page.t", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/index/health?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/index-health/page.tsx:83)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/index-health/page.tsx:83` calls `GET /api/v1/admin/index/health?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/index/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-544b5e56bc3cee7a", "name": "Dangling fetch: GET /api/v1/admin/index/maintenance?workspaceId=${WORKSPACE_ID}&limit=20 (apps/dashboard/app/admin/index", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/index/maintenance?workspaceId=${WORKSPACE_ID}&limit=20 (apps/dashboard/app/admin/index-health/page.tsx:84)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/index-health/page.tsx:84` calls `GET /api/v1/admin/index/maintenance?workspaceId=${WORKSPACE_ID}&limit=20` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/index/maintenance`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb768bcda95f7963", "name": "Dangling fetch: POST /api/v1/admin/index/maintenance/${jobType}/trigger (apps/dashboard/app/admin/index-health/page.tsx:", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/index/maintenance/${jobType}/trigger (apps/dashboard/app/admin/index-health/page.tsx:104)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/index-health/page.tsx:104` calls `POST /api/v1/admin/index/maintenance/${jobType}/trigger` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/index/maintenance/<p>/trigger`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b05071b1dc19cb8", "name": "Dangling fetch: GET /api/v1/permissions/templates (apps/dashboard/app/admin/permissions/page.tsx:23)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/permissions/templates (apps/dashboard/app/admin/permissions/page.tsx:23)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:23` calls `GET /api/v1/permissions/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e004fe502050d44a", "name": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole} (apps/dashboard/app/admin/permissions/page.tsx:32)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole} (apps/dashboard/app/admin/permissions/page.tsx:32)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:32` calls `GET /api/v1/permissions/roles/${selectedRole}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/roles/<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-bfe518870ccc2150", "name": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole}/audit (apps/dashboard/app/admin/permissions/page.tsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole}/audit (apps/dashboard/app/admin/permissions/page.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:33` calls `GET /api/v1/permissions/roles/${selectedRole}/audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/roles/<p>/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39923c8ed7b83ce4", "name": "Dangling fetch: POST /api/v1/permissions/roles/${selectedRole}/revoke (apps/dashboard/app/admin/permissions/page.tsx:41)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/permissions/roles/${selectedRole}/revoke (apps/dashboard/app/admin/permissions/page.tsx:41)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:41` calls `POST /api/v1/permissions/roles/${selectedRole}/revoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/roles/<p>/revoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b66fce28d9565b5", "name": "Dangling fetch: POST /api/v1/permissions/roles/${selectedRole}/apply-template (apps/dashboard/app/admin/permissions/page", "shortDescription": {"text": "Dangling fetch: POST /api/v1/permissions/roles/${selectedRole}/apply-template (apps/dashboard/app/admin/permissions/page.tsx:50)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:50` calls `POST /api/v1/permissions/roles/${selectedRole}/apply-template` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/roles/<p>/apply-template`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-45c711fdfc4afcaf", "name": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole} (apps/dashboard/app/admin/permissions/page.tsx:55)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole} (apps/dashboard/app/admin/permissions/page.tsx:55)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:55` calls `GET /api/v1/permissions/roles/${selectedRole}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/roles/<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-cacba8e67f3e45c4", "name": "Dangling fetch: POST /api/v1/permissions/roles/${roleId}/${action} (apps/dashboard/app/admin/permissions/page.tsx:62)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/permissions/roles/${roleId}/${action} (apps/dashboard/app/admin/permissions/page.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/permissions/page.tsx:62` calls `POST /api/v1/permissions/roles/${roleId}/${action}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/permissions/roles/<p>/<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-a13c65fe9e88d63c", "name": "Dangling fetch: GET /api/v1/graphql/audit?workspaceId=${workspaceId}&limit=50 (apps/dashboard/app/admin/graphql-explorer", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graphql/audit?workspaceId=${workspaceId}&limit=50 (apps/dashboard/app/admin/graphql-explorer/page.tsx:28)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/graphql-explorer/page.tsx:28` calls `GET /api/v1/graphql/audit?workspaceId=${workspaceId}&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: `/v1/graphql/audit`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ad7bb205843ef94", "name": "Dangling fetch: GET /api/v1/graphql/schema (apps/dashboard/app/admin/graphql-explorer/page.tsx:41)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/graphql/schema (apps/dashboard/app/admin/graphql-explorer/page.tsx:41)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/graphql-explorer/page.tsx:41` calls `GET /api/v1/graphql/schema` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/graphql/schema`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d29a821682f66a19", "name": "Dangling fetch: GET /api/v1/admin/retention-policies (apps/dashboard/app/admin/retention/page.tsx:50)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies (apps/dashboard/app/admin/retention/page.tsx:50)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/retention/page.tsx:50` calls `GET /api/v1/admin/retention-policies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93257f1c06ece942", "name": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities (apps/dashboard/app/admin/retention/page.tsx:55)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities (apps/dashboard/app/admin/retention/page.tsx:55)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/retention/page.tsx:55` calls `GET /api/v1/admin/retention-policies/archived-entities` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/retention-policies/archived-entities`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-209c3cda8441b5fb", "name": "Dangling fetch: POST /api/v1/admin/retention-policies/archived-entities/${encodeURIComponent(entityId)}/restore (apps/da", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/archived-entities/${encodeURIComponent(entityId)}/restore (apps/dashboard/app/admin/retention/page.tsx:62)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/retention/page.tsx:62` calls `POST /api/v1/admin/retention-policies/archived-entities/${encodeURIComponent(entityId)}/restore` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/retention-policies/archived-entities/<p>/restore`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-46522d238b96073f", "name": "Dangling fetch: GET /api/v1/admin/lifecycle/dashboard (apps/dashboard/app/admin/entity-lifecycle/page.tsx:27)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/lifecycle/dashboard (apps/dashboard/app/admin/entity-lifecycle/page.tsx:27)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/entity-lifecycle/page.tsx:27` calls `GET /api/v1/admin/lifecycle/dashboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/lifecycle/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-de5179ab1add8009", "name": "Dangling fetch: GET /api/v1/admin/lifecycle/entities?status=${statusFilter} (apps/dashboard/app/admin/entity-lifecycle/p", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/lifecycle/entities?status=${statusFilter} (apps/dashboard/app/admin/entity-lifecycle/page.tsx:28)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/entity-lifecycle/page.tsx:28` calls `GET /api/v1/admin/lifecycle/entities?status=${statusFilter}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/lifecycle/entities`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c5f0d6b46a9e1c8", "name": "Dangling fetch: GET /api/v1/entities/${entityId}/lifecycle (apps/dashboard/app/admin/entity-lifecycle/page.tsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities/${entityId}/lifecycle (apps/dashboard/app/admin/entity-lifecycle/page.tsx:37)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/entity-lifecycle/page.tsx:37` calls `GET /api/v1/entities/${entityId}/lifecycle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/<p>/lifecycle`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8859eec4d1749745", "name": "Dangling fetch: PUT /api/v1/entities/${entityId}/lifecycle/status (apps/dashboard/app/admin/entity-lifecycle/page.tsx:45", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/entities/${entityId}/lifecycle/status (apps/dashboard/app/admin/entity-lifecycle/page.tsx:45)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/entity-lifecycle/page.tsx:45` calls `PUT /api/v1/entities/${entityId}/lifecycle/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities/<p>/lifecycle/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-740686cc3cd353cc", "name": "Dangling fetch: GET /api/v1/query-analytics/plans (apps/dashboard/app/admin/query-execution-analytics/page.tsx:43)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/query-analytics/plans (apps/dashboard/app/admin/query-execution-analytics/page.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-execution-analytics/page.tsx:43` calls `GET /api/v1/query-analytics/plans` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/query-analytics/plans`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa291304c79f49af", "name": "Dangling fetch: GET /api/v1/query-analytics/plans/${planId} (apps/dashboard/app/admin/query-execution-analytics/page.tsx", "shortDescription": {"text": "Dangling fetch: GET /api/v1/query-analytics/plans/${planId} (apps/dashboard/app/admin/query-execution-analytics/page.tsx:56)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-execution-analytics/page.tsx:56` calls `GET /api/v1/query-analytics/plans/${planId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/query-analytics/plans/<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-8ec9b0bfebf64f69", "name": "Dangling fetch: POST /api/v1/query-analytics/plans/${planId}/rerun (apps/dashboard/app/admin/query-execution-analytics/p", "shortDescription": {"text": "Dangling fetch: POST /api/v1/query-analytics/plans/${planId}/rerun (apps/dashboard/app/admin/query-execution-analytics/page.tsx:66)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/query-execution-analytics/page.tsx:66` calls `POST /api/v1/query-analytics/plans/${planId}/rerun` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/query-analytics/plans/<p>/rerun`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee26f67f4c3811e4", "name": "Dangling fetch: GET /api/v1/sso (apps/dashboard/app/admin/sso/page.tsx:48)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sso (apps/dashboard/app/admin/sso/page.tsx:48)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/sso/page.tsx:48` calls `GET /api/v1/sso` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sso`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40718d3007d144aa", "name": "Dangling fetch: GET /api/v1/sso/users (apps/dashboard/app/admin/sso/page.tsx:49)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sso/users (apps/dashboard/app/admin/sso/page.tsx:49)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/sso/page.tsx:49` calls `GET /api/v1/sso/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sso/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5a368a7f101664fc", "name": "Dangling fetch: POST /api/v1/sso (apps/dashboard/app/admin/sso/page.tsx:67)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/sso (apps/dashboard/app/admin/sso/page.tsx:67)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/sso/page.tsx:67` calls `POST /api/v1/sso` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sso`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e5f6e0ecce859b72", "name": "Dangling fetch: GET /api/v1/governance/lineage?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/pag", "shortDescription": {"text": "Dangling fetch: GET /api/v1/governance/lineage?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:43)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:43` calls `GET /api/v1/governance/lineage?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/lineage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4269df933a473c2e", "name": "Dangling fetch: GET /api/v1/governance/audit-summary?workspaceId=${WORKSPACE_ID}&limit=50 (apps/dashboard/app/admin/data", "shortDescription": {"text": "Dangling fetch: GET /api/v1/governance/audit-summary?workspaceId=${WORKSPACE_ID}&limit=50 (apps/dashboard/app/admin/data-governance/page.tsx:53)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:53` calls `GET /api/v1/governance/audit-summary?workspaceId=${WORKSPACE_ID}&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: `/v1/governance/audit-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-dcbccced58754c59", "name": "Dangling fetch: GET /api/v1/governance/retention-policies?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-gov", "shortDescription": {"text": "Dangling fetch: GET /api/v1/governance/retention-policies?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:63)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:63` calls `GET /api/v1/governance/retention-policies?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d34470045a7ef7cf", "name": "Dangling fetch: GET /api/v1/governance/compliance-status?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-gove", "shortDescription": {"text": "Dangling fetch: GET /api/v1/governance/compliance-status?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:73)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:73` calls `GET /api/v1/governance/compliance-status?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/compliance-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-5edd672b7e3eca80", "name": "Dangling fetch: GET /api/v1/governance/dsr-queue?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/p", "shortDescription": {"text": "Dangling fetch: GET /api/v1/governance/dsr-queue?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:83)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:83` calls `GET /api/v1/governance/dsr-queue?workspaceId=${WORKSPACE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/dsr-queue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e0377b90977ee7d2", "name": "Dangling fetch: POST /api/v1/governance/retention-policies (apps/dashboard/app/admin/data-governance/page.tsx:98)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/governance/retention-policies (apps/dashboard/app/admin/data-governance/page.tsx:98)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:98` calls `POST /api/v1/governance/retention-policies` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/retention-policies`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-069eeebea8035fb8", "name": "Dangling fetch: PUT /api/v1/governance/compliance-status (apps/dashboard/app/admin/data-governance/page.tsx:108)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/governance/compliance-status (apps/dashboard/app/admin/data-governance/page.tsx:108)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:108` calls `PUT /api/v1/governance/compliance-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/compliance-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-3b21cb26e5ce9bd4", "name": "Dangling fetch: PATCH /api/v1/governance/dsr-queue/${requestId}/status (apps/dashboard/app/admin/data-governance/page.ts", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/governance/dsr-queue/${requestId}/status (apps/dashboard/app/admin/data-governance/page.tsx:117)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/data-governance/page.tsx:117` calls `PATCH /api/v1/governance/dsr-queue/${requestId}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/governance/dsr-queue/<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-93ecae31037bb7fe", "name": "Dangling fetch: PUT /api/v1/entity-linking/links/${id} (apps/dashboard/app/admin/entity-linking/page.tsx:108)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/entity-linking/links/${id} (apps/dashboard/app/admin/entity-linking/page.tsx:108)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/entity-linking/page.tsx:108` calls `PUT /api/v1/entity-linking/links/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entity-linking/links/<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-a359f1135a39382e", "name": "Dangling fetch: GET /api/v1/connectors/${selectedConnector}/schema/versions (apps/dashboard/app/admin/schema-migrations/", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${selectedConnector}/schema/versions (apps/dashboard/app/admin/schema-migrations/page.tsx:60)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/schema-migrations/page.tsx:60` calls `GET /api/v1/connectors/${selectedConnector}/schema/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/schema/versions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ffa04f0711a5be3b", "name": "Dangling fetch: GET /api/v1/connectors/${selectedConnector}/schema/migrations (apps/dashboard/app/admin/schema-migration", "shortDescription": {"text": "Dangling fetch: GET /api/v1/connectors/${selectedConnector}/schema/migrations (apps/dashboard/app/admin/schema-migrations/page.tsx:61)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/schema-migrations/page.tsx:61` calls `GET /api/v1/connectors/${selectedConnector}/schema/migrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/schema/migrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59579e160b7cea6b", "name": "Dangling fetch: POST /api/v1/connectors/${selectedConnector}/schema/migrations (apps/dashboard/app/admin/schema-migratio", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connectors/${selectedConnector}/schema/migrations (apps/dashboard/app/admin/schema-migrations/page.tsx:109)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/schema-migrations/page.tsx:109` calls `POST /api/v1/connectors/${selectedConnector}/schema/migrations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/connectors/<p>/schema/migrations`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8e4064b768e8a961", "name": "Dangling fetch: GET /api/v1/admin/webhooks/dlq (apps/dashboard/app/admin/webhooks/dlq/page.tsx:32)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/webhooks/dlq (apps/dashboard/app/admin/webhooks/dlq/page.tsx:32)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/webhooks/dlq/page.tsx:32` calls `GET /api/v1/admin/webhooks/dlq` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/webhooks/dlq`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-481a55a7dd583630", "name": "Dangling fetch: GET /api/v1/admin/webhooks/dlq/analyze (apps/dashboard/app/admin/webhooks/dlq/page.tsx:33)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/admin/webhooks/dlq/analyze (apps/dashboard/app/admin/webhooks/dlq/page.tsx:33)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/webhooks/dlq/page.tsx:33` calls `GET /api/v1/admin/webhooks/dlq/analyze` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/webhooks/dlq/analyze`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-35ff5c601708c7c7", "name": "Dangling fetch: POST /api/v1/admin/webhooks/dlq/${id}/replay (apps/dashboard/app/admin/webhooks/dlq/page.tsx:50)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/webhooks/dlq/${id}/replay (apps/dashboard/app/admin/webhooks/dlq/page.tsx:50)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/webhooks/dlq/page.tsx:50` calls `POST /api/v1/admin/webhooks/dlq/${id}/replay` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/webhooks/dlq/<p>/replay`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a87d9714cd2ed2c1", "name": "Dangling fetch: POST /api/v1/admin/webhooks/dlq/prune (apps/dashboard/app/admin/webhooks/dlq/page.tsx:66)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/admin/webhooks/dlq/prune (apps/dashboard/app/admin/webhooks/dlq/page.tsx:66)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/webhooks/dlq/page.tsx:66` calls `POST /api/v1/admin/webhooks/dlq/prune` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/admin/webhooks/dlq/prune`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c582b57a89669b75", "name": "Dangling fetch: GET /api/v1/ha/status (apps/dashboard/app/admin/ha-config/page.tsx:46)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/ha/status (apps/dashboard/app/admin/ha-config/page.tsx:46)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/ha-config/page.tsx:46` calls `GET /api/v1/ha/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/ha/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-7a6bcf7f9fcbddf5", "name": "Dangling fetch: GET /api/v1/ha/history (apps/dashboard/app/admin/ha-config/page.tsx:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/ha/history (apps/dashboard/app/admin/ha-config/page.tsx:47)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/ha-config/page.tsx:47` calls `GET /api/v1/ha/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/ha/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-9918fea179f42fb7", "name": "Dangling fetch: POST /api/v1/ha/failover (apps/dashboard/app/admin/ha-config/page.tsx:64)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/ha/failover (apps/dashboard/app/admin/ha-config/page.tsx:64)"}, "fullDescription": {"text": "`apps/dashboard/app/admin/ha-config/page.tsx:64` calls `POST /api/v1/ha/failover` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/ha/failover`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a37ac2d690713254", "name": "Dangling fetch: GET /api/v1/context/stream/metrics (apps/dashboard/app/context-monitor/page.tsx:25)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/context/stream/metrics (apps/dashboard/app/context-monitor/page.tsx:25)"}, "fullDescription": {"text": "`apps/dashboard/app/context-monitor/page.tsx:25` calls `GET /api/v1/context/stream/metrics` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/context/stream/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-c57a4742c71ea9c5", "name": "Dangling fetch: GET /api/v1/onboarding/status (apps/dashboard/app/onboarding/page.tsx:26)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/onboarding/status (apps/dashboard/app/onboarding/page.tsx:26)"}, "fullDescription": {"text": "`apps/dashboard/app/onboarding/page.tsx:26` calls `GET /api/v1/onboarding/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/onboarding/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-1b8d30bd8b195581", "name": "Dangling fetch: POST /api/v1/onboarding/start (apps/dashboard/app/onboarding/page.tsx:36)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/onboarding/start (apps/dashboard/app/onboarding/page.tsx:36)"}, "fullDescription": {"text": "`apps/dashboard/app/onboarding/page.tsx:36` calls `POST /api/v1/onboarding/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/onboarding/start`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-957b22d9e4ca3606", "name": "Dangling fetch: GET /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:44)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:44)"}, "fullDescription": {"text": "`apps/dashboard/app/search-tuning/page.tsx:44` calls `GET /api/v1/search-tuning/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/search-tuning/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e707cf248841a144", "name": "Dangling fetch: PUT /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:60)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:60)"}, "fullDescription": {"text": "`apps/dashboard/app/search-tuning/page.tsx:60` calls `PUT /api/v1/search-tuning/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/search-tuning/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-14584d531d9e41ed", "name": "Dangling fetch: DELETE /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:81)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:81)"}, "fullDescription": {"text": "`apps/dashboard/app/search-tuning/page.tsx:81` calls `DELETE /api/v1/search-tuning/weights` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/search-tuning/weights`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ad2f4b17b20247e", "name": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/recommended-contexts?topK=12 (apps/dashboard/app/team-in", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/recommended-contexts?topK=12 (apps/dashboard/app/team-insights/page.tsx:66)"}, "fullDescription": {"text": "`apps/dashboard/app/team-insights/page.tsx:66` calls `GET /api/v1/teams/${encodeURIComponent(teamId)}/recommended-contexts?topK=12` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/teams/<p>/recommended-contexts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-805ff4fc6a175280", "name": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/usage?window=30d (apps/dashboard/app/team-insights/page.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/usage?window=30d (apps/dashboard/app/team-insights/page.tsx:69)"}, "fullDescription": {"text": "`apps/dashboard/app/team-insights/page.tsx:69` calls `GET /api/v1/teams/${encodeURIComponent(teamId)}/usage?window=30d` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/teams/<p>/usage`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-66662d8496525ef7", "name": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/expansion-suggestions (apps/dashboard/app/team-insights/", "shortDescription": {"text": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/expansion-suggestions (apps/dashboard/app/team-insights/page.tsx:72)"}, "fullDescription": {"text": "`apps/dashboard/app/team-insights/page.tsx:72` calls `GET /api/v1/teams/${encodeURIComponent(teamId)}/expansion-suggestions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/teams/<p>/expansion-suggestions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63ab32f2c6040e18", "name": "Dangling fetch: GET /api/v1/entities?${params} (apps/dashboard/app/entities/page.tsx:61)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/entities?${params} (apps/dashboard/app/entities/page.tsx:61)"}, "fullDescription": {"text": "`apps/dashboard/app/entities/page.tsx:61` calls `GET /api/v1/entities?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/entities`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7d065f24fce6a86", "name": "Dangling fetch: GET /api/v1/sdks/languages (apps/dashboard/app/developers/sdk-portal/page.tsx:81)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sdks/languages (apps/dashboard/app/developers/sdk-portal/page.tsx:81)"}, "fullDescription": {"text": "`apps/dashboard/app/developers/sdk-portal/page.tsx:81` calls `GET /api/v1/sdks/languages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sdks/languages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce4fa799519f0ad4", "name": "Dangling fetch: GET /api/v1/sdks/tools (apps/dashboard/app/developers/sdk-portal/page.tsx:91)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sdks/tools (apps/dashboard/app/developers/sdk-portal/page.tsx:91)"}, "fullDescription": {"text": "`apps/dashboard/app/developers/sdk-portal/page.tsx:91` calls `GET /api/v1/sdks/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sdks/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8bd689fbb3e1626e", "name": "Dangling fetch: GET /api/v1/sdks/preview/${selectedLang} (apps/dashboard/app/developers/sdk-portal/page.tsx:101)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/sdks/preview/${selectedLang} (apps/dashboard/app/developers/sdk-portal/page.tsx:101)"}, "fullDescription": {"text": "`apps/dashboard/app/developers/sdk-portal/page.tsx:101` calls `GET /api/v1/sdks/preview/${selectedLang}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sdks/preview/<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-4015cf02c0ae0848", "name": "Dangling fetch: POST /api/v1/sdks/generate/${selectedLang} (apps/dashboard/app/developers/sdk-portal/page.tsx:113)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/sdks/generate/${selectedLang} (apps/dashboard/app/developers/sdk-portal/page.tsx:113)"}, "fullDescription": {"text": "`apps/dashboard/app/developers/sdk-portal/page.tsx:113` calls `POST /api/v1/sdks/generate/${selectedLang}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/sdks/generate/<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-eb7d2f1b42fd642b", "name": "Dangling fetch: POST https://events.pagerduty.com/v2/enqueue (packages/semantic-core/src/alerts.ts:390)", "shortDescription": {"text": "Dangling fetch: POST https://events.pagerduty.com/v2/enqueue (packages/semantic-core/src/alerts.ts:390)"}, "fullDescription": {"text": "`packages/semantic-core/src/alerts.ts:390` calls `POST https://events.pagerduty.com/v2/enqueue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/events.pagerduty.com/v2/enqueue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0db822ed38069ccb", "name": "Dangling fetch: POST https://api.cohere.ai/v1/embed (packages/semantic-core/src/providers/cohere-provider.ts:49)", "shortDescription": {"text": "Dangling fetch: POST https://api.cohere.ai/v1/embed (packages/semantic-core/src/providers/cohere-provider.ts:49)"}, "fullDescription": {"text": "`packages/semantic-core/src/providers/cohere-provider.ts:49` calls `POST https://api.cohere.ai/v1/embed` 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.cohere.ai/v1/embed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91c910a60fe50f9b", "name": "Dangling fetch: POST https://auth.atlassian.com/oauth/token (packages/connectors/jira/src/jira-connector.ts:245)", "shortDescription": {"text": "Dangling fetch: POST https://auth.atlassian.com/oauth/token (packages/connectors/jira/src/jira-connector.ts:245)"}, "fullDescription": {"text": "`packages/connectors/jira/src/jira-connector.ts:245` calls `POST https://auth.atlassian.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/auth.atlassian.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c9ab67e8d0c5a73", "name": "Dangling fetch: POST https://login.salesforce.com/services/oauth2/token (packages/connectors/salesforce/src/salesforce-c", "shortDescription": {"text": "Dangling fetch: POST https://login.salesforce.com/services/oauth2/token (packages/connectors/salesforce/src/salesforce-connector.ts:248)"}, "fullDescription": {"text": "`packages/connectors/salesforce/src/salesforce-connector.ts:248` calls `POST https://login.salesforce.com/services/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/login.salesforce.com/services/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b46eb6688e9fef1b", "name": "Dangling fetch: POST https://auth.atlassian.com/oauth/token (packages/connectors/confluence/src/confluence-connector.ts:", "shortDescription": {"text": "Dangling fetch: POST https://auth.atlassian.com/oauth/token (packages/connectors/confluence/src/confluence-connector.ts:249)"}, "fullDescription": {"text": "`packages/connectors/confluence/src/confluence-connector.ts:249` calls `POST https://auth.atlassian.com/oauth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/auth.atlassian.com/oauth/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fe4a8d250ad5c30e", "name": "Dangling fetch: GET https://api.test.example.com/contacts (packages/connector-sdk/src/testing/__tests__/connector-test-h", "shortDescription": {"text": "Dangling fetch: GET https://api.test.example.com/contacts (packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:35)"}, "fullDescription": {"text": "`packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:35` calls `GET https://api.test.example.com/contacts` 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.test.example.com/contacts`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-264acf4bc75a1e08", "name": "Dangling fetch: GET https://api.test.example.com/unknown (packages/connector-sdk/src/testing/__tests__/connector-test-ha", "shortDescription": {"text": "Dangling fetch: GET https://api.test.example.com/unknown (packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:43)"}, "fullDescription": {"text": "`packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:43` calls `GET https://api.test.example.com/unknown` 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.test.example.com/unknown`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f895e302225f915", "name": "Dangling fetch: GET https://api.test.example.com/auth (packages/connector-sdk/src/testing/__tests__/connector-test-harne", "shortDescription": {"text": "Dangling fetch: GET https://api.test.example.com/auth (packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:51)"}, "fullDescription": {"text": "`packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:51` calls `GET https://api.test.example.com/auth` 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.test.example.com/auth`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f1daeda83de2b575", "name": "Unused endpoint: USE /:id/sync", "shortDescription": {"text": "Unused endpoint: USE /:id/sync"}, "fullDescription": {"text": "`apps/api/src/server.ts` declares `USE /:id/sync` 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-59fe9dd5557daec2", "name": "Unused endpoint: USE /webhooks/*", "shortDescription": {"text": "Unused endpoint: USE /webhooks/*"}, "fullDescription": {"text": "`apps/api/src/server.ts` declares `USE /webhooks/*` 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-b76fb2beeee122c0", "name": "Unused endpoint: GET /top-workspaces", "shortDescription": {"text": "Unused endpoint: GET /top-workspaces"}, "fullDescription": {"text": "`apps/api/src/routes/admin-cost-audit.ts` declares `GET /top-workspaces` 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-f88bff6fd58393b9", "name": "Unused endpoint: GET /resources", "shortDescription": {"text": "Unused endpoint: GET /resources"}, "fullDescription": {"text": "`apps/api/src/routes/mcp-resource-discovery.ts` declares `GET /resources` 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-44950aca0190b23b", "name": "Unused endpoint: GET /:id/forecast", "shortDescription": {"text": "Unused endpoint: GET /:id/forecast"}, "fullDescription": {"text": "`apps/api/src/routes/health-forecasts.ts` declares `GET /:id/forecast` 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-e2004770b8ccd071", "name": "Unused endpoint: GET /:id/forecast-alerts", "shortDescription": {"text": "Unused endpoint: GET /:id/forecast-alerts"}, "fullDescription": {"text": "`apps/api/src/routes/health-forecasts.ts` declares `GET /:id/forecast-alerts` 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-7e4db7ff6ed90b3c", "name": "Unused endpoint: POST /attribute", "shortDescription": {"text": "Unused endpoint: POST /attribute"}, "fullDescription": {"text": "`apps/api/src/routes/cost-attribution.ts` declares `POST /attribute` 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-739ebfb11aa012e2", "name": "Unused endpoint: GET /entities/:entityId", "shortDescription": {"text": "Unused endpoint: GET /entities/:entityId"}, "fullDescription": {"text": "`apps/api/src/routes/cost-attribution.ts` declares `GET /entities/:entityId` 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-9f3254799251d820", "name": "Unused endpoint: GET /entities/:entityId/forecast", "shortDescription": {"text": "Unused endpoint: GET /entities/:entityId/forecast"}, "fullDescription": {"text": "`apps/api/src/routes/cost-attribution.ts` declares `GET /entities/:entityId/forecast` 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-013741023e3fc124", "name": "Unused endpoint: GET /connectors/:connectorId", "shortDescription": {"text": "Unused endpoint: GET /connectors/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/cost-attribution.ts` declares `GET /connectors/:connectorId` 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-61dd05ecafcd2eb2", "name": "Unused endpoint: GET /users/:userId", "shortDescription": {"text": "Unused endpoint: GET /users/:userId"}, "fullDescription": {"text": "`apps/api/src/routes/cost-attribution.ts` declares `GET /users/:userId` 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-1c720723c1e389b3", "name": "Unused endpoint: POST /connector-events", "shortDescription": {"text": "Unused endpoint: POST /connector-events"}, "fullDescription": {"text": "`apps/api/src/routes/cost-attribution.ts` declares `POST /connector-events` 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-e2b19f1664f99779", "name": "Unused endpoint: GET /:traceId", "shortDescription": {"text": "Unused endpoint: GET /:traceId"}, "fullDescription": {"text": "`apps/api/src/routes/request-traces.ts` declares `GET /:traceId` 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-6e6daf482bbd6050", "name": "Unused endpoint: GET /:entityId", "shortDescription": {"text": "Unused endpoint: GET /:entityId"}, "fullDescription": {"text": "`apps/api/src/routes/lineage.ts` declares `GET /:entityId` 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-04e96b6997650f68", "name": "Unused endpoint: POST /:entityId/impact-analysis", "shortDescription": {"text": "Unused endpoint: POST /:entityId/impact-analysis"}, "fullDescription": {"text": "`apps/api/src/routes/lineage.ts` declares `POST /:entityId/impact-analysis` 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-71db64b021004288", "name": "Unused endpoint: GET /agents/:agentId/proactive-preview", "shortDescription": {"text": "Unused endpoint: GET /agents/:agentId/proactive-preview"}, "fullDescription": {"text": "`apps/api/src/routes/proactive-context.ts` declares `GET /agents/:agentId/proactive-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-a540d7a48abfeae0", "name": "Unused endpoint: GET /agents/:agentId/profile", "shortDescription": {"text": "Unused endpoint: GET /agents/:agentId/profile"}, "fullDescription": {"text": "`apps/api/src/routes/proactive-context.ts` declares `GET /agents/:agentId/profile` 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-9ad3f5be86a399c2", "name": "Unused endpoint: GET /agents/:agentId/acceptance-stats", "shortDescription": {"text": "Unused endpoint: GET /agents/:agentId/acceptance-stats"}, "fullDescription": {"text": "`apps/api/src/routes/proactive-context.ts` declares `GET /agents/:agentId/acceptance-stats` 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-d24d06cb7de19fc0", "name": "Unused endpoint: POST /agents/:agentId/proactive-settings", "shortDescription": {"text": "Unused endpoint: POST /agents/:agentId/proactive-settings"}, "fullDescription": {"text": "`apps/api/src/routes/proactive-context.ts` declares `POST /agents/:agentId/proactive-settings` 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-4e1a90dbd80b0749", "name": "Unused endpoint: POST /proactive/feedback", "shortDescription": {"text": "Unused endpoint: POST /proactive/feedback"}, "fullDescription": {"text": "`apps/api/src/routes/proactive-context.ts` declares `POST /proactive/feedback` 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-419089e7ca779e72", "name": "Unused endpoint: POST /:id/restore", "shortDescription": {"text": "Unused endpoint: POST /:id/restore"}, "fullDescription": {"text": "`apps/api/src/routes/snapshots.ts` declares `POST /:id/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-657738c47e96f71f", "name": "Unused endpoint: DELETE /:configId", "shortDescription": {"text": "Unused endpoint: DELETE /:configId"}, "fullDescription": {"text": "`apps/api/src/routes/llm-providers.ts` declares `DELETE /:configId` 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-d589369692398512", "name": "Unused endpoint: POST /:configId/test", "shortDescription": {"text": "Unused endpoint: POST /:configId/test"}, "fullDescription": {"text": "`apps/api/src/routes/llm-providers.ts` declares `POST /:configId/test` 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-605b9d060c8506c3", "name": "Unused endpoint: GET /opt-in", "shortDescription": {"text": "Unused endpoint: GET /opt-in"}, "fullDescription": {"text": "`apps/api/src/routes/benchmarking.ts` declares `GET /opt-in` 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-3256cfc1140aaab6", "name": "Unused endpoint: POST /opt-in", "shortDescription": {"text": "Unused endpoint: POST /opt-in"}, "fullDescription": {"text": "`apps/api/src/routes/benchmarking.ts` declares `POST /opt-in` 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-4290fe6bd8d00fce", "name": "Unused endpoint: POST /opt-out", "shortDescription": {"text": "Unused endpoint: POST /opt-out"}, "fullDescription": {"text": "`apps/api/src/routes/benchmarking.ts` declares `POST /opt-out` 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-c368dede2e2f5cee", "name": "Unused endpoint: GET /peers", "shortDescription": {"text": "Unused endpoint: GET /peers"}, "fullDescription": {"text": "`apps/api/src/routes/benchmarking.ts` declares `GET /peers` 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-c35bdeabdbc78d85", "name": "Unused endpoint: POST /plan", "shortDescription": {"text": "Unused endpoint: POST /plan"}, "fullDescription": {"text": "`apps/api/src/routes/multi-connector-optimizer.ts` declares `POST /plan` 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-8cf04100f0f61e0f", "name": "Unused endpoint: POST /estimate", "shortDescription": {"text": "Unused endpoint: POST /estimate"}, "fullDescription": {"text": "`apps/api/src/routes/multi-connector-optimizer.ts` declares `POST /estimate` 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-7a71b7a3857b25e6", "name": "Unused endpoint: POST /recommend-contexts", "shortDescription": {"text": "Unused endpoint: POST /recommend-contexts"}, "fullDescription": {"text": "`apps/api/src/routes/batch-recommendations.ts` declares `POST /recommend-contexts` 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-347bba8d732b1b09", "name": "Unused endpoint: POST /group-actions", "shortDescription": {"text": "Unused endpoint: POST /group-actions"}, "fullDescription": {"text": "`apps/api/src/routes/batch-recommendations.ts` declares `POST /group-actions` 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-749b440fdc4b9aa7", "name": "Unused endpoint: POST /group-score", "shortDescription": {"text": "Unused endpoint: POST /group-score"}, "fullDescription": {"text": "`apps/api/src/routes/batch-recommendations.ts` declares `POST /group-score` 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-14556968f8c5e36e", "name": "Unused endpoint: GET /results/:sessionId", "shortDescription": {"text": "Unused endpoint: GET /results/:sessionId"}, "fullDescription": {"text": "`apps/api/src/routes/batch-recommendations.ts` declares `GET /results/:sessionId` 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-9fc5e60358f93e88", "name": "Unused endpoint: POST /:connectorInstanceId/:secret", "shortDescription": {"text": "Unused endpoint: POST /:connectorInstanceId/:secret"}, "fullDescription": {"text": "`apps/api/src/routes/webhooks.ts` declares `POST /:connectorInstanceId/:secret` 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-ed0896ac4aad8652", "name": "Unused endpoint: GET /import/jobs", "shortDescription": {"text": "Unused endpoint: GET /import/jobs"}, "fullDescription": {"text": "`apps/api/src/routes/bulk-operations.ts` declares `GET /import/jobs` 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-1bedaecbe6c6d695", "name": "Unused endpoint: GET /import/jobs/:jobId", "shortDescription": {"text": "Unused endpoint: GET /import/jobs/:jobId"}, "fullDescription": {"text": "`apps/api/src/routes/bulk-operations.ts` declares `GET /import/jobs/: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-e686634beeea0bb8", "name": "Unused endpoint: GET /export", "shortDescription": {"text": "Unused endpoint: GET /export"}, "fullDescription": {"text": "`apps/api/src/routes/bulk-operations.ts` declares `GET /export` 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-2858eab5bd8ed02a", "name": "Unused endpoint: GET /quality/:connectorId", "shortDescription": {"text": "Unused endpoint: GET /quality/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/enrichment-quality.ts` declares `GET /quality/:connectorId` 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-76afc4e62d1236f4", "name": "Unused endpoint: GET /gaps", "shortDescription": {"text": "Unused endpoint: GET /gaps"}, "fullDescription": {"text": "`apps/api/src/routes/enrichment-quality.ts` declares `GET /gaps` 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-6f6308a93f644bda", "name": "Unused endpoint: GET /sources/:sourceId/reliability", "shortDescription": {"text": "Unused endpoint: GET /sources/:sourceId/reliability"}, "fullDescription": {"text": "`apps/api/src/routes/enrichment-quality.ts` declares `GET /sources/:sourceId/reliability` 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-8cfef7da3a36b578", "name": "Unused endpoint: POST /sources/feedback", "shortDescription": {"text": "Unused endpoint: POST /sources/feedback"}, "fullDescription": {"text": "`apps/api/src/routes/enrichment-quality.ts` declares `POST /sources/feedback` 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-fc59fb3b9f5adf29", "name": "Unused endpoint: GET /roi/:connectorId", "shortDescription": {"text": "Unused endpoint: GET /roi/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/enrichment-quality.ts` declares `GET /roi/:connectorId` 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-5f5cd6ee8152483e", "name": "Unused endpoint: GET /jobs/:jobId", "shortDescription": {"text": "Unused endpoint: GET /jobs/:jobId"}, "fullDescription": {"text": "`apps/api/src/routes/workspace-export.ts` declares `GET /jobs/: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-cd310e0a65aa79bf", "name": "Unused endpoint: POST /tuning/:connectorId", "shortDescription": {"text": "Unused endpoint: POST /tuning/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/sync-optimizer.ts` declares `POST /tuning/:connectorId` 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-0d1eb6de13da80b1", "name": "Unused endpoint: GET /config/:connectorId", "shortDescription": {"text": "Unused endpoint: GET /config/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/sync-optimizer.ts` declares `GET /config/:connectorId` 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-8c677189dc756ce1", "name": "Unused endpoint: POST /experiments/:connectorId", "shortDescription": {"text": "Unused endpoint: POST /experiments/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/sync-optimizer.ts` declares `POST /experiments/:connectorId` 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-ad5e663a54b219ee", "name": "Unused endpoint: GET /experiments", "shortDescription": {"text": "Unused endpoint: GET /experiments"}, "fullDescription": {"text": "`apps/api/src/routes/sync-optimizer.ts` declares `GET /experiments` 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-417536760d263d8e", "name": "Unused endpoint: GET /window/:connectorId", "shortDescription": {"text": "Unused endpoint: GET /window/:connectorId"}, "fullDescription": {"text": "`apps/api/src/routes/sync-optimizer.ts` declares `GET /window/:connectorId` 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-aa707e6676ea0139", "name": "Unused endpoint: GET /entities/:entityId/suggestions", "shortDescription": {"text": "Unused endpoint: GET /entities/:entityId/suggestions"}, "fullDescription": {"text": "`apps/api/src/routes/relationship-recommendations.ts` declares `GET /entities/:entityId/suggestions` 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-6b82874baa8f70ce", "name": "Unused endpoint: POST /auto-link", "shortDescription": {"text": "Unused endpoint: POST /auto-link"}, "fullDescription": {"text": "`apps/api/src/routes/relationship-recommendations.ts` declares `POST /auto-link` 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/22984"}, "properties": {"repository": "Xeebs/iris", "repoUrl": "https://github.com/Xeebs/iris", "branch": "main"}, "results": [{"ruleId": "scanner-fc13063b5459ced5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/sync-concurrency-test.js:46"}, "properties": {"repobilityId": "2aba514fac361d2e", "scanner": "scanner-primary", "fingerprint": "fc13063b5459ced5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f4a2b7939cc698f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/mcp-throughput-test.js:84"}, "properties": {"repobilityId": "14c03f73bea0e545", "scanner": "scanner-primary", "fingerprint": "2f4a2b7939cc698f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab79032691d0b9ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/index-query-test.js:80"}, "properties": {"repobilityId": "59d179f07aa2a1de", "scanner": "scanner-primary", "fingerprint": "ab79032691d0b9ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-059505190f16b08a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/load/api-stress-test.js:78"}, "properties": {"repobilityId": "0db23ef6a79c95b7", "scanner": "scanner-primary", "fingerprint": "059505190f16b08a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9254864d9c8535bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/e2e/slice-canonical-questions.spec.ts:33"}, "properties": {"repobilityId": "6103423c1cb8c702", "scanner": "scanner-primary", "fingerprint": "9254864d9c8535bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ec80301a54255e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/db/migrate.ts:50"}, "properties": {"repobilityId": "4c947c823da5fa9d", "scanner": "scanner-primary", "fingerprint": "4ec80301a54255e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b74665d073d7985", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/schema-field-mapper.tsx:183"}, "properties": {"repobilityId": "44390c76dacc916f", "scanner": "scanner-primary", "fingerprint": "3b74665d073d7985", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-18bbe64fd26e8522", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/staleness-alerts-panel.tsx:87"}, "properties": {"repobilityId": "fd4a9d7a83d5bf58", "scanner": "scanner-primary", "fingerprint": "18bbe64fd26e8522", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-320e4111acd9d854", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/search-result-item.tsx:76"}, "properties": {"repobilityId": "c02ae3a9e69042f0", "scanner": "scanner-primary", "fingerprint": "320e4111acd9d854", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed9eb27a9cb83540", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/components/search-result-item.tsx:77"}, "properties": {"repobilityId": "7b277d7ea08b153f", "scanner": "scanner-primary", "fingerprint": "ed9eb27a9cb83540", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5b12505adf857229", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/prefetch-recommendations.tsx:69"}, "properties": {"repobilityId": "0d4ebe25dc6c49c2", "scanner": "scanner-primary", "fingerprint": "5b12505adf857229", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1b510508c35637c5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dlq-pattern-analysis.tsx:48"}, "properties": {"repobilityId": "3db46f62ac5e7c68", "scanner": "scanner-primary", "fingerprint": "1b510508c35637c5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3be35dda7fe87b18", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dashboard-layout.tsx:68"}, "properties": {"repobilityId": "35ec7dddb4a80ad6", "scanner": "scanner-primary", "fingerprint": "3be35dda7fe87b18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e15ac0ae784295de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/response-format-analytics.tsx:50"}, "properties": {"repobilityId": "888c8159a732b174", "scanner": "scanner-primary", "fingerprint": "e15ac0ae784295de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c3c6d7895e28f31", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-lineage-viewer.tsx:115"}, "properties": {"repobilityId": "e90149625b3ff65e", "scanner": "scanner-primary", "fingerprint": "0c3c6d7895e28f31", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5cf0e253a18a1c15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/context-search-panel.tsx:96"}, "properties": {"repobilityId": "b96c28ff6e60c9d4", "scanner": "scanner-primary", "fingerprint": "5cf0e253a18a1c15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8ff0fc37ebdafb9e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/group-analysis-results.tsx:125"}, "properties": {"repobilityId": "96dad152dcdfbafb", "scanner": "scanner-primary", "fingerprint": "8ff0fc37ebdafb9e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e2d0fdd1f956fb13", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/alert-action-logger.tsx:132"}, "properties": {"repobilityId": "04660af999b32c0b", "scanner": "scanner-primary", "fingerprint": "e2d0fdd1f956fb13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f63507bc300be748", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-hit-timeline.tsx:25"}, "properties": {"repobilityId": "f9651b4b877bcce6", "scanner": "scanner-primary", "fingerprint": "f63507bc300be748", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-277fb5f791758f90", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/transformation-rule-editor.tsx:312"}, "properties": {"repobilityId": "8b4bd00e54f255b2", "scanner": "scanner-primary", "fingerprint": "277fb5f791758f90", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e85684b2730e504e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/ab-test-runner.tsx:154"}, "properties": {"repobilityId": "6c49794d8190dbb6", "scanner": "scanner-primary", "fingerprint": "e85684b2730e504e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-79f85470a230601b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-efficiency-heatmap.tsx:74"}, "properties": {"repobilityId": "d15472c1bda67732", "scanner": "scanner-primary", "fingerprint": "79f85470a230601b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6e356208d1a3471", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/data-quality-issues-table.tsx:56"}, "properties": {"repobilityId": "0a321ee3b5d0fad4", "scanner": "scanner-primary", "fingerprint": "f6e356208d1a3471", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-04eb4c0907d2e3d7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cache-stats-panel.tsx:142"}, "properties": {"repobilityId": "c66f40cfdb232ff8", "scanner": "scanner-primary", "fingerprint": "04eb4c0907d2e3d7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-74ac259e02ea8b23", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/relevance-tuner-panel.tsx:107"}, "properties": {"repobilityId": "f00e45bd5d6416ca", "scanner": "scanner-primary", "fingerprint": "74ac259e02ea8b23", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-014f00f65e4aabcd", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 apps/dashboard/components/connector-detail-modal.tsx:108"}, "properties": {"repobilityId": "8e5f9f578ca70de6", "scanner": "scanner-primary", "fingerprint": "014f00f65e4aabcd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5635746938b4352d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-reconciliation-panel.tsx:87"}, "properties": {"repobilityId": "4a7d298ab5e7da86", "scanner": "scanner-primary", "fingerprint": "5635746938b4352d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7ccc3deb7835050b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/recent-workflows-list.tsx:62"}, "properties": {"repobilityId": "79c7704ace00093b", "scanner": "scanner-primary", "fingerprint": "7ccc3deb7835050b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-549294c1f66e616d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/composition-charts.tsx:64"}, "properties": {"repobilityId": "e59b667e64124b10", "scanner": "scanner-primary", "fingerprint": "549294c1f66e616d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f9a929e7ee76917b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/query-expansion-interface.tsx:153"}, "properties": {"repobilityId": "b2d4657278b8dd50", "scanner": "scanner-primary", "fingerprint": "f9a929e7ee76917b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5dea82a301610330", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dlq-event-table.tsx:32"}, "properties": {"repobilityId": "66e9a38599be08c4", "scanner": "scanner-primary", "fingerprint": "5dea82a301610330", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c692b5675aa84599", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/webhook-delivery-status.tsx:137"}, "properties": {"repobilityId": "650f8d7b377bc52c", "scanner": "scanner-primary", "fingerprint": "c692b5675aa84599", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bf5467627ce1c958", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/connector-detail-panel.tsx:65"}, "properties": {"repobilityId": "0b9e1db6e99e7aab", "scanner": "scanner-primary", "fingerprint": "bf5467627ce1c958", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-efe838a4d93e7995", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/streaming-preview-panel.tsx:139"}, "properties": {"repobilityId": "7421b937a116b91a", "scanner": "scanner-primary", "fingerprint": "efe838a4d93e7995", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9bc7ac487e7419f7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/cost-breakdown-charts.tsx:66"}, "properties": {"repobilityId": "45b84456c49bf43f", "scanner": "scanner-primary", "fingerprint": "9bc7ac487e7419f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9735306ed3ce68dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/batch-context-panel.tsx:103"}, "properties": {"repobilityId": "d5bfe19a5554132a", "scanner": "scanner-primary", "fingerprint": "9735306ed3ce68dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e1012edaffaf23b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/relationship-suggestions-widget.tsx:149"}, "properties": {"repobilityId": "a6837a4aee01afc3", "scanner": "scanner-primary", "fingerprint": "0e1012edaffaf23b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-297b43ad5cc8cca3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-throughput-gauge.tsx:67"}, "properties": {"repobilityId": "e97e85d1fc4731bf", "scanner": "scanner-primary", "fingerprint": "297b43ad5cc8cca3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad91ed7e64f795f3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/sync-queue-status.tsx:65"}, "properties": {"repobilityId": "b599cb9f88fc5ff2", "scanner": "scanner-primary", "fingerprint": "ad91ed7e64f795f3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d621192d1e6b67f6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/ranking-explainer.tsx:106"}, "properties": {"repobilityId": "091b9c32bc8486e0", "scanner": "scanner-primary", "fingerprint": "d621192d1e6b67f6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6ead6349f5f02600", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/sync-monitoring-dashboard.tsx:138"}, "properties": {"repobilityId": "9a55c4d5a511296c", "scanner": "scanner-primary", "fingerprint": "6ead6349f5f02600", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1766b5dcc261a203", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/email-template-editor.tsx:169"}, "properties": {"repobilityId": "4f425c1dc1e861d1", "scanner": "scanner-primary", "fingerprint": "1766b5dcc261a203", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ccf87bc68148c454", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 apps/dashboard/components/email-template-editor.tsx:256"}, "properties": {"repobilityId": "59e0f20194581c51", "scanner": "scanner-primary", "fingerprint": "ccf87bc68148c454", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9f85d24be901dd0f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/optimization-history-chart.tsx:100"}, "properties": {"repobilityId": "dab81e1b54c66625", "scanner": "scanner-primary", "fingerprint": "9f85d24be901dd0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d00dc117a3ace3b2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/context-suggestions-widget.tsx:136"}, "properties": {"repobilityId": "ab3a836fc11fdf42", "scanner": "scanner-primary", "fingerprint": "d00dc117a3ace3b2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bcb1a7656d6810f1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-comparison-panel.tsx:102"}, "properties": {"repobilityId": "5be1a6d72fc6adc2", "scanner": "scanner-primary", "fingerprint": "bcb1a7656d6810f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-06c9cffa9cf43a6f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/dependency-graph.tsx:90"}, "properties": {"repobilityId": "ff2c307738100e1d", "scanner": "scanner-primary", "fingerprint": "06c9cffa9cf43a6f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-46482fb461efcc60", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/deprecation-tracker.tsx:37"}, "properties": {"repobilityId": "d06351f6d5a6f6b8", "scanner": "scanner-primary", "fingerprint": "46482fb461efcc60", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d270cf40932c032b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/trace-flame-graph.tsx:31"}, "properties": {"repobilityId": "a3fd1a10df991a28", "scanner": "scanner-primary", "fingerprint": "d270cf40932c032b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0ff961440a6386bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/entity-access-heatmap.tsx:43"}, "properties": {"repobilityId": "27d16768986954e0", "scanner": "scanner-primary", "fingerprint": "0ff961440a6386bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8182e1d7ab553c5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/components/workflow-template-gallery.tsx:91"}, "properties": {"repobilityId": "bd04892a3519c8e2", "scanner": "scanner-primary", "fingerprint": "b8182e1d7ab553c5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5cc926c7dc6c531e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/templates/page.tsx:152"}, "properties": {"repobilityId": "8caa61e72b975268", "scanner": "scanner-primary", "fingerprint": "5cc926c7dc6c531e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc83fa44004d01b3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/performance/page.tsx:172"}, "properties": {"repobilityId": "0670df72196780e6", "scanner": "scanner-primary", "fingerprint": "cc83fa44004d01b3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-441b639ddf0d44ea", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/retention/page.tsx:139"}, "properties": {"repobilityId": "316b54936992ecdc", "scanner": "scanner-primary", "fingerprint": "441b639ddf0d44ea", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-126df00f4596cf63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/admin/metrics/computed-metrics/page.tsx:133"}, "properties": {"repobilityId": "5371d92543e68c79", "scanner": "scanner-primary", "fingerprint": "126df00f4596cf63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b79090d6c2071b5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/team-insights/page.tsx:116"}, "properties": {"repobilityId": "36fcb31fa5d8cc19", "scanner": "scanner-primary", "fingerprint": "6b79090d6c2071b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f88b965f485cefb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/dashboard/app/queries/page.tsx:65"}, "properties": {"repobilityId": "25a8766341e0ae2f", "scanner": "scanner-primary", "fingerprint": "7f88b965f485cefb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9d92120efdadebe4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/dashboard/app/developers/sdk-portal/page.tsx:42"}, "properties": {"repobilityId": "fd2e58aefcd9f7b6", "scanner": "scanner-primary", "fingerprint": "9d92120efdadebe4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d3760e44b826fc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/eval-retrieval.ts:151"}, "properties": {"repobilityId": "089b8432352d0e15", "scanner": "scanner-primary", "fingerprint": "8d3760e44b826fc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fbd37a7fa0ea7faf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/mcp-smoke.ts:59"}, "properties": {"repobilityId": "61c67d0d355d534f", "scanner": "scanner-primary", "fingerprint": "fbd37a7fa0ea7faf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d5a9450c67ae28f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/mcp-server/src/slice-query-client.ts:108"}, "properties": {"repobilityId": "dbadda15a6990503", "scanner": "scanner-primary", "fingerprint": "7d5a9450c67ae28f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b34ef00d4251462e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/slice2-demo.ts:87"}, "properties": {"repobilityId": "e147c7f657bf9bea", "scanner": "scanner-primary", "fingerprint": "b34ef00d4251462e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4757952a87dda9de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/slice-sim.ts:105"}, "properties": {"repobilityId": "f65aa7f00c7d8fef", "scanner": "scanner-primary", "fingerprint": "4757952a87dda9de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fd6100154c0a1d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/slice-demo.ts:51"}, "properties": {"repobilityId": "433d2b32a17c3b69", "scanner": "scanner-primary", "fingerprint": "1fd6100154c0a1d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-781e108e904c850b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/inspect-index.ts:48"}, "properties": {"repobilityId": "cc823414395a5720", "scanner": "scanner-primary", "fingerprint": "781e108e904c850b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e2513e204b8e4be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/index.ts:49"}, "properties": {"repobilityId": "e8ed2df4415a4f29", "scanner": "scanner-primary", "fingerprint": "9e2513e204b8e4be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c488b24a714e3704", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/debug-mcp.ts:13"}, "properties": {"repobilityId": "d0441bb7b39c6eb1", "scanner": "scanner-primary", "fingerprint": "c488b24a714e3704", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ecaf93aa8efa999", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/simulate-sync.ts:46"}, "properties": {"repobilityId": "867fc84372878ac2", "scanner": "scanner-primary", "fingerprint": "0ecaf93aa8efa999", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eebf88fcbded53fd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/cli/test-connector.ts:32"}, "properties": {"repobilityId": "a714519583440dbe", "scanner": "scanner-primary", "fingerprint": "eebf88fcbded53fd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-49356235d4f3e39d", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/query-expansion-engine.ts:141"}, "properties": {"repobilityId": "56bdc8475ad0d923", "scanner": "scanner-primary", "fingerprint": "49356235d4f3e39d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-f16554874f5b5b88", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/batch-operations.ts:201"}, "properties": {"repobilityId": "bc0c9c44460bf208", "scanner": "scanner-primary", "fingerprint": "f16554874f5b5b88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-e71c3be7f685273c", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/semantic-core/src/vector-store.ts:224"}, "properties": {"repobilityId": "84beb0b0b5b74ffc", "scanner": "scanner-primary", "fingerprint": "e71c3be7f685273c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-3da195390a7df43a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/semantic-core/src/providers/__tests__/ollama-provider.integration.test.ts:17"}, "properties": {"repobilityId": "ad01cb73968b085d", "scanner": "scanner-primary", "fingerprint": "3da195390a7df43a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-085db3a71299b831", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in apps/dashboard/components/search-result-item.tsx:77"}, "properties": {"repobilityId": "e68789c4cbf2105a", "scanner": "scanner-primary", "fingerprint": "085db3a71299b831", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/components/search-result-item.tsx"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-4d57c35a2bd5f7dd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in apps/mcp-server/src/http-server.ts:64"}, "properties": {"repobilityId": "1fa2ecba39c0d12c", "scanner": "scanner-primary", "fingerprint": "4d57c35a2bd5f7dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/mcp-server/src/http-server.ts"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-f8a602f5b04ace98", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/mcp-smoke.ts:17"}, "properties": {"repobilityId": "36b76eaffaede1af", "scanner": "scanner-primary", "fingerprint": "f8a602f5b04ace98", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mcp-smoke.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-a63c123d8b84e891", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/slice2-demo.ts:19"}, "properties": {"repobilityId": "1d3ced95d1ba43b3", "scanner": "scanner-primary", "fingerprint": "a63c123d8b84e891", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/slice2-demo.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-825ed93aa32d5145", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/slice-demo.ts:16"}, "properties": {"repobilityId": "61a7d5fdd0e137c3", "scanner": "scanner-primary", "fingerprint": "825ed93aa32d5145", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/slice-demo.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-0fdcce33c8da2405", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/cli/debug-mcp.ts:1"}, "properties": {"repobilityId": "e36555f0c5e9a49c", "scanner": "scanner-primary", "fingerprint": "0fdcce33c8da2405", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/cli/debug-mcp.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4c3da5ab57487a35", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/cli/test-connector.ts:1"}, "properties": {"repobilityId": "cc29841f2dddcf53", "scanner": "scanner-primary", "fingerprint": "4c3da5ab57487a35", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/cli/test-connector.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-571278fa2ad6db43", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bc2a87ca351e8233", "scanner": "scanner-primary", "fingerprint": "571278fa2ad6db43", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/slice2-demo.yml"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-571278fa2ad6db43", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5a6a3904c3e6d786", "scanner": "scanner-primary", "fingerprint": "571278fa2ad6db43", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/slice2-demo.yml"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-59d5aff36e9a421d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9381a38db71ed934", "scanner": "scanner-primary", "fingerprint": "59d5aff36e9a421d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/onboarding-golden-path.yml"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-1c90d8b0520c508e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "35fbdbc1279cd950", "scanner": "scanner-primary", "fingerprint": "1c90d8b0520c508e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/slice-demo.yml"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "87b27e343fa1bb1f", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-c2a53c791c10d1ac", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: tests/load/package.json"}, "properties": {"repobilityId": "bba4ff188c231425", "scanner": "scanner-primary", "fingerprint": "c2a53c791c10d1ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/load/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b06b8d86f24c77f9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/api/package.json"}, "properties": {"repobilityId": "ce77cd34ed0306d4", "scanner": "scanner-primary", "fingerprint": "b06b8d86f24c77f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ec82f9367de34433", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/dashboard/package.json"}, "properties": {"repobilityId": "4cf5ff15e81d6746", "scanner": "scanner-primary", "fingerprint": "ec82f9367de34433", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/dashboard/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e7b2bc4b44100d7a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/mcp-server/package.json"}, "properties": {"repobilityId": "1be24d56910c6c53", "scanner": "scanner-primary", "fingerprint": "e7b2bc4b44100d7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/mcp-server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1aa71543363b5bf", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/compression/package.json"}, "properties": {"repobilityId": "4d4ff9b299b2a268", "scanner": "scanner-primary", "fingerprint": "e1aa71543363b5bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/compression/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b2aa3d1a45f2330a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/semantic-core/package.json"}, "properties": {"repobilityId": "1ca79b3f8279c88e", "scanner": "scanner-primary", "fingerprint": "b2aa3d1a45f2330a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/semantic-core/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c330837e73b7dd9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/jira/package.json"}, "properties": {"repobilityId": "1ad060f5edb33a53", "scanner": "scanner-primary", "fingerprint": "5c330837e73b7dd9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/jira/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8487746aedab801e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/github/package.json"}, "properties": {"repobilityId": "fd9aeb401603e63b", "scanner": "scanner-primary", "fingerprint": "8487746aedab801e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/github/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5cdf09e205451537", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/notion/package.json"}, "properties": {"repobilityId": "a1ea1be7ce8f9acc", "scanner": "scanner-primary", "fingerprint": "5cdf09e205451537", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/notion/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8775c84bbaac795f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/salesforce/package.json"}, "properties": {"repobilityId": "9f6259ca038f1764", "scanner": "scanner-primary", "fingerprint": "8775c84bbaac795f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/salesforce/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea3832885bd645bb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/airtable/package.json"}, "properties": {"repobilityId": "908f20aba4f7184a", "scanner": "scanner-primary", "fingerprint": "ea3832885bd645bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/airtable/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4b57384a42b6fab", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/google-drive/package.json"}, "properties": {"repobilityId": "290d17740f845aad", "scanner": "scanner-primary", "fingerprint": "c4b57384a42b6fab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/google-drive/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2d988f79c1c1bd9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/snowflake/package.json"}, "properties": {"repobilityId": "33236f9b25e2ba18", "scanner": "scanner-primary", "fingerprint": "d2d988f79c1c1bd9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/snowflake/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fccfb19cf3705a6e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/netsuite/package.json"}, "properties": {"repobilityId": "678617528a111c9b", "scanner": "scanner-primary", "fingerprint": "fccfb19cf3705a6e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/netsuite/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e504ec3a82e30f9b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/postgres/package.json"}, "properties": {"repobilityId": "4acd5bf7e46d19a0", "scanner": "scanner-primary", "fingerprint": "e504ec3a82e30f9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/postgres/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-802425e7f1522826", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/quickbooks/package.json"}, "properties": {"repobilityId": "e64c7800f427d844", "scanner": "scanner-primary", "fingerprint": "802425e7f1522826", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/quickbooks/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1788d50f260451f1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/linear/package.json"}, "properties": {"repobilityId": "1f4dddfbca9cc13d", "scanner": "scanner-primary", "fingerprint": "1788d50f260451f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/linear/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4fc9d96fd4b16da", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/hubspot/package.json"}, "properties": {"repobilityId": "b9741dee060d0437", "scanner": "scanner-primary", "fingerprint": "f4fc9d96fd4b16da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/hubspot/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5d9b27afb3a4453", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/confluence/package.json"}, "properties": {"repobilityId": "9f2e6daf14620fb9", "scanner": "scanner-primary", "fingerprint": "b5d9b27afb3a4453", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/confluence/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ddc8b054c34b5230", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connectors/slack/package.json"}, "properties": {"repobilityId": "fbf678014b1a320b", "scanner": "scanner-primary", "fingerprint": "ddc8b054c34b5230", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connectors/slack/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-17758973a65e7db1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/cache/package.json"}, "properties": {"repobilityId": "7582a0b29850ef6b", "scanner": "scanner-primary", "fingerprint": "17758973a65e7db1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/cache/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d154c5965f2d4b2e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/generated-sdks/typescript-sdk/package.json"}, "properties": {"repobilityId": "40c2b215945d7dd5", "scanner": "scanner-primary", "fingerprint": "d154c5965f2d4b2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/generated-sdks/typescript-sdk/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e8eeaea1067ef6eb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/queue/package.json"}, "properties": {"repobilityId": "7a4e97c4e09ea54e", "scanner": "scanner-primary", "fingerprint": "e8eeaea1067ef6eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/queue/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b9e9f25057bbb6c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/connector-sdk/package.json"}, "properties": {"repobilityId": "7aa36d162d8aa2c3", "scanner": "scanner-primary", "fingerprint": "9b9e9f25057bbb6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/connector-sdk/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28e92806c0db3cd2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/core/package.json"}, "properties": {"repobilityId": "8640e46be7e3f9b2", "scanner": "scanner-primary", "fingerprint": "28e92806c0db3cd2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/core/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d7c3f19978cb63d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/graph/package.json"}, "properties": {"repobilityId": "54fe79d9a6f5430c", "scanner": "scanner-primary", "fingerprint": "5d7c3f19978cb63d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/graph/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "c91e57f985f6aa1e", "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": "3c2574b1a38a9478", "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": "c47f9d578fd9e3a0", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "84a8d47237ed9038", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "2bf339d95de69ddc", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "fe2e2b0831ad517e", "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": "1330fbc79e1fdee1", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8769bcc771831214", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/settings.json"}, "properties": {"repobilityId": "f94968d1c8aa7dc6", "scanner": "scanner-primary", "fingerprint": "8769bcc771831214", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-a41a27c6d52c344e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/embedding-patterns.md"}, "properties": {"repobilityId": "a35167d2f4850606", "scanner": "scanner-primary", "fingerprint": "a41a27c6d52c344e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/embedding-patterns.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19f18bdc1ea8040d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/security-auditor.md"}, "properties": {"repobilityId": "41fc5f6dc929e898", "scanner": "scanner-primary", "fingerprint": "19f18bdc1ea8040d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/security-auditor.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3d68f4cb01eb3b05", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/migration-writer.md"}, "properties": {"repobilityId": "1a53cf1dc3c9b4da", "scanner": "scanner-primary", "fingerprint": "3d68f4cb01eb3b05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/migration-writer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc1aa5a1ab693e01", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/slice-canonical-questions.spec.ts:12"}, "properties": {"repobilityId": "8d0fdcec153aa416", "scanner": "scanner-primary", "fingerprint": "dc1aa5a1ab693e01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bf3c1b7df204629", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/analytics-pipeline.test.ts:41"}, "properties": {"repobilityId": "7b50e1d01b95ef77", "scanner": "scanner-primary", "fingerprint": "3bf3c1b7df204629", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e6440df5f66ffad8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/backup-recovery.test.ts:62"}, "properties": {"repobilityId": "cea592cc4544c870", "scanner": "scanner-primary", "fingerprint": "e6440df5f66ffad8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6204ee1a72aa95f7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/entity-lifecycle.test.ts:42"}, "properties": {"repobilityId": "c74c139ede18891e", "scanner": "scanner-primary", "fingerprint": "6204ee1a72aa95f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b4acaa5e134e7934", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/ha-admin.test.ts:44"}, "properties": {"repobilityId": "36612304edc27c6a", "scanner": "scanner-primary", "fingerprint": "b4acaa5e134e7934", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f79e14f0de50acad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/context-deltas.test.ts:46"}, "properties": {"repobilityId": "6095d8d639fc7018", "scanner": "scanner-primary", "fingerprint": "f79e14f0de50acad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58d6b029dc4167ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/quota-management.test.ts:48"}, "properties": {"repobilityId": "4f750438a2443e14", "scanner": "scanner-primary", "fingerprint": "58d6b029dc4167ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6c197e0dc654bbac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/permission-management.test.ts:44"}, "properties": {"repobilityId": "3758a6613ba07a4d", "scanner": "scanner-primary", "fingerprint": "6c197e0dc654bbac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-19450b1d7fce2247", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/webhook-dlq-admin.test.ts:44"}, "properties": {"repobilityId": "60214782df5c7496", "scanner": "scanner-primary", "fingerprint": "19450b1d7fce2247", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-123fe119cf330bce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/query-analytics.test.ts:61"}, "properties": {"repobilityId": "848d2106842d3a38", "scanner": "scanner-primary", "fingerprint": "123fe119cf330bce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b7b896134769b2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/mcp-tool-discovery.test.ts:23"}, "properties": {"repobilityId": "7d5f5b05b9e1b599", "scanner": "scanner-primary", "fingerprint": "2b7b896134769b2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-531030de0a79565b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/schema-migrations.test.ts:59"}, "properties": {"repobilityId": "7222303bc37e978d", "scanner": "scanner-primary", "fingerprint": "531030de0a79565b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c88a0a0803eaf4c5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/admin-dedup.test.ts:69"}, "properties": {"repobilityId": "e857f1f226461294", "scanner": "scanner-primary", "fingerprint": "c88a0a0803eaf4c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e89bc705fd826a62", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in apps/api/src/__tests__/mcp-tools.test.ts:135"}, "properties": {"repobilityId": "85208d9bdc148db1", "scanner": "scanner-primary", "fingerprint": "e89bc705fd826a62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-47bd85ec8242cc09", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/api-version-admin.test.ts:30"}, "properties": {"repobilityId": "43daa22d35b2eb9c", "scanner": "scanner-primary", "fingerprint": "47bd85ec8242cc09", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63c999be651d4b6b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/__tests__/sso-config.test.ts:102"}, "properties": {"repobilityId": "706e38417d6d8777", "scanner": "scanner-primary", "fingerprint": "63c999be651d4b6b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7ddbb0ebf766c837", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/validation-failure-explorer.tsx:43"}, "properties": {"repobilityId": "b8b855a0544474cf", "scanner": "scanner-primary", "fingerprint": "7ddbb0ebf766c837", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0552e2f19810ced5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/event-stream-monitor.tsx:56"}, "properties": {"repobilityId": "0ca15473fb429bfd", "scanner": "scanner-primary", "fingerprint": "0552e2f19810ced5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c554d385722715ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-resilience-config.tsx:96"}, "properties": {"repobilityId": "b10ece0380b42874", "scanner": "scanner-primary", "fingerprint": "c554d385722715ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c31b19c35a7ec255", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/audit-log-viewer.tsx:47"}, "properties": {"repobilityId": "d1a7ab1754e918c8", "scanner": "scanner-primary", "fingerprint": "c31b19c35a7ec255", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79dcd1f7c57fb99e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/audit-export-wizard.tsx:42"}, "properties": {"repobilityId": "fabc380615ab809c", "scanner": "scanner-primary", "fingerprint": "79dcd1f7c57fb99e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9e1e1ecd61298355", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/real-time-log-viewer.tsx:54"}, "properties": {"repobilityId": "397d53e8601ec40c", "scanner": "scanner-primary", "fingerprint": "9e1e1ecd61298355", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c37ee4368cd1f238", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/change-metrics.tsx:62"}, "properties": {"repobilityId": "db1735af507f15e8", "scanner": "scanner-primary", "fingerprint": "c37ee4368cd1f238", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-29fbd6aaa7dabcdf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/advanced-query-builder.tsx:100"}, "properties": {"repobilityId": "9bcf0861cde3ee2b", "scanner": "scanner-primary", "fingerprint": "29fbd6aaa7dabcdf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ded934bd814bef57", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/group-analysis-results.tsx:61"}, "properties": {"repobilityId": "9318ea21a3d661b6", "scanner": "scanner-primary", "fingerprint": "ded934bd814bef57", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9018cde04326ee74", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/sync-quality-monitor.tsx:78"}, "properties": {"repobilityId": "538c9c61ada7c461", "scanner": "scanner-primary", "fingerprint": "9018cde04326ee74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1aa9ea56ba57d56c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/freshness-compliance-heatmap.tsx:33"}, "properties": {"repobilityId": "c2f09ba07611aa1e", "scanner": "scanner-primary", "fingerprint": "1aa9ea56ba57d56c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a4b0f1c4ebe882c6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/transformation-rule-editor.tsx:166"}, "properties": {"repobilityId": "492941162b351530", "scanner": "scanner-primary", "fingerprint": "a4b0f1c4ebe882c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18567791b9680cd1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/scim-sync-status.tsx:50"}, "properties": {"repobilityId": "6902b210e2b3d81f", "scanner": "scanner-primary", "fingerprint": "18567791b9680cd1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4e6f685a713a02d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/cache-warming-status.tsx:54"}, "properties": {"repobilityId": "6c18e1d37f7bd906", "scanner": "scanner-primary", "fingerprint": "4e6f685a713a02d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-576022cb71cfb01d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/ab-test-runner.tsx:52"}, "properties": {"repobilityId": "4c180b807a71ded0", "scanner": "scanner-primary", "fingerprint": "576022cb71cfb01d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c7e0765cd7e04f82", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/latency-heatmap.tsx:56"}, "properties": {"repobilityId": "1e19707ecd661d56", "scanner": "scanner-primary", "fingerprint": "c7e0765cd7e04f82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa2c9f8c5f748e5f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/dedup-decision-history.tsx:48"}, "properties": {"repobilityId": "d1469c442ca87f44", "scanner": "scanner-primary", "fingerprint": "fa2c9f8c5f748e5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0e6aefd2bce8b06b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/entity-reconciliation-panel.tsx:53"}, "properties": {"repobilityId": "2989d12f37feb38d", "scanner": "scanner-primary", "fingerprint": "0e6aefd2bce8b06b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9128614fa21fdb54", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/onboarding-wizard.tsx:111"}, "properties": {"repobilityId": "584baa8092984cfb", "scanner": "scanner-primary", "fingerprint": "9128614fa21fdb54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a316d72b6a424bf8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/context-delta-analyzer.tsx:82"}, "properties": {"repobilityId": "5150816329f253dc", "scanner": "scanner-primary", "fingerprint": "a316d72b6a424bf8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e6fc738edde179ae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/webhook-delivery-status.tsx:69"}, "properties": {"repobilityId": "0638457b2991085c", "scanner": "scanner-primary", "fingerprint": "e6fc738edde179ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-02019ddfe6da25b1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/agent-proactive-config.tsx:43"}, "properties": {"repobilityId": "2a12353c783ebe3f", "scanner": "scanner-primary", "fingerprint": "02019ddfe6da25b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76397982e99e4d3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/mcp-tool-browser.tsx:45"}, "properties": {"repobilityId": "2b78d61c490b4096", "scanner": "scanner-primary", "fingerprint": "76397982e99e4d3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aeca162b7650751e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/relationship-suggestions-widget.tsx:69"}, "properties": {"repobilityId": "eab61c868a1f9bd7", "scanner": "scanner-primary", "fingerprint": "aeca162b7650751e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-458ab7837e1ca4f2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/sync-error-diagnostic.tsx:115"}, "properties": {"repobilityId": "3f5c821cc8f054dc", "scanner": "scanner-primary", "fingerprint": "458ab7837e1ca4f2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e04b2eeb3e126291", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/auto-tuning-advisor.tsx:67"}, "properties": {"repobilityId": "8350969292f43761", "scanner": "scanner-primary", "fingerprint": "e04b2eeb3e126291", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a08ff148a1fa19ef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/validation-rule-builder.tsx:160"}, "properties": {"repobilityId": "b9aaf15b9581aecd", "scanner": "scanner-primary", "fingerprint": "a08ff148a1fa19ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4a388e2c804f710", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-health-scorecard.tsx:185"}, "properties": {"repobilityId": "dac2bf8e7667c3a9", "scanner": "scanner-primary", "fingerprint": "e4a388e2c804f710", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e854053912565fd4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/connector-setup-wizard.tsx:181"}, "properties": {"repobilityId": "24f1a1055db7cda0", "scanner": "scanner-primary", "fingerprint": "e854053912565fd4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbbfbf9aadcbadb8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/components/recipe-installer.tsx:40"}, "properties": {"repobilityId": "069e4960d60c56e3", "scanner": "scanner-primary", "fingerprint": "dbbfbf9aadcbadb8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-24d86f65d5be5a97", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/page.tsx:14"}, "properties": {"repobilityId": "0ac1badf0a013da1", "scanner": "scanner-primary", "fingerprint": "24d86f65d5be5a97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b594260c8715265a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/page.tsx:55"}, "properties": {"repobilityId": "f9ce27423ec4e1c8", "scanner": "scanner-primary", "fingerprint": "b594260c8715265a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a5ae4a27c7c405a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:70"}, "properties": {"repobilityId": "a7a885e31be0bdf1", "scanner": "scanner-primary", "fingerprint": "2a5ae4a27c7c405a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18afa453c5648ded", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/members/page.tsx:45"}, "properties": {"repobilityId": "9b5437e43baca486", "scanner": "scanner-primary", "fingerprint": "18afa453c5648ded", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-799d85c14b334cba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28"}, "properties": {"repobilityId": "47f915c009e83e68", "scanner": "scanner-primary", "fingerprint": "799d85c14b334cba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b33a5900027a769", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/settings/usage-limits/page.tsx:85"}, "properties": {"repobilityId": "44d71fd66f279c4f", "scanner": "scanner-primary", "fingerprint": "9b33a5900027a769", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-615f139bfe0959ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/marketplace/[connectorId]/page.tsx:36"}, "properties": {"repobilityId": "e34c2fc23d7975e2", "scanner": "scanner-primary", "fingerprint": "615f139bfe0959ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dfbfc612734e29f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71"}, "properties": {"repobilityId": "75373b70b2870649", "scanner": "scanner-primary", "fingerprint": "dfbfc612734e29f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-616e209c81002233", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:41"}, "properties": {"repobilityId": "ae6e068ded75e1b9", "scanner": "scanner-primary", "fingerprint": "616e209c81002233", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c94c0490971a900f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/cost-breakdown/page.tsx:78"}, "properties": {"repobilityId": "9c808baa5669a07b", "scanner": "scanner-primary", "fingerprint": "c94c0490971a900f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f46f22a9952ed2b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:23"}, "properties": {"repobilityId": "ec75134ccb5ab23f", "scanner": "scanner-primary", "fingerprint": "f46f22a9952ed2b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0706901d9447eae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/data-lineage/page.tsx:30"}, "properties": {"repobilityId": "bd284dbdd6b33a83", "scanner": "scanner-primary", "fingerprint": "f0706901d9447eae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bd2b8e421cacce8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/connectors/setup/[id]/schema-review/page.tsx:101"}, "properties": {"repobilityId": "c518ed8c0f4060b9", "scanner": "scanner-primary", "fingerprint": "0bd2b8e421cacce8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49eee8f63a9b0a6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/mcp/resources/page.tsx:40"}, "properties": {"repobilityId": "4349a9835e4c52b0", "scanner": "scanner-primary", "fingerprint": "49eee8f63a9b0a6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8493fdc05d6ccd43", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/insights/page.tsx:63"}, "properties": {"repobilityId": "92abb9060b69b6b2", "scanner": "scanner-primary", "fingerprint": "8493fdc05d6ccd43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e4e838d4a733be9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/mcp-tools/page.tsx:20"}, "properties": {"repobilityId": "470b072f5e13a228", "scanner": "scanner-primary", "fingerprint": "7e4e838d4a733be9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98dd0ca8bee6248f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/search/advanced/page.tsx:109"}, "properties": {"repobilityId": "b0f01ebe731f2754", "scanner": "scanner-primary", "fingerprint": "98dd0ca8bee6248f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d238da281ed1d117", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/recipes/page.tsx:28"}, "properties": {"repobilityId": "92f883cdf91a9c7a", "scanner": "scanner-primary", "fingerprint": "d238da281ed1d117", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1ef0e443beb4b03d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/__tests__/overview.test.tsx:41"}, "properties": {"repobilityId": "c1933bf544208e78", "scanner": "scanner-primary", "fingerprint": "1ef0e443beb4b03d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d30e4c452922b091", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-rules/page.tsx:62"}, "properties": {"repobilityId": "0910f72e599e8eb8", "scanner": "scanner-primary", "fingerprint": "d30e4c452922b091", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59f0cd276325c2eb", "level": "note", "message": {"text": "Legacy-named symbol `pruneOld` in apps/dashboard/app/admin/backup-recovery/page.tsx:94"}, "properties": {"repobilityId": "8e6d840fccad852b", "scanner": "scanner-primary", "fingerprint": "59f0cd276325c2eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca61809d9712ec1a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/backup-recovery/page.tsx:33"}, "properties": {"repobilityId": "8a1a28244375ab82", "scanner": "scanner-primary", "fingerprint": "ca61809d9712ec1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed3d3b7edf70e1c5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/connector-health-scorecard/page.tsx:92"}, "properties": {"repobilityId": "23fdd1980a63b59d", "scanner": "scanner-primary", "fingerprint": "ed3d3b7edf70e1c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b7e37d1f03b795b5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-sessions/page.tsx:45"}, "properties": {"repobilityId": "d17b0b18432e7ba4", "scanner": "scanner-primary", "fingerprint": "b7e37d1f03b795b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0d400a588e028c7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/pii-config/page.tsx:97"}, "properties": {"repobilityId": "66747944103abfe8", "scanner": "scanner-primary", "fingerprint": "d0d400a588e028c7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0a9b9398d6c1308f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/subscription-manager/page.tsx:42"}, "properties": {"repobilityId": "67d1b15fadda1138", "scanner": "scanner-primary", "fingerprint": "0a9b9398d6c1308f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98c698019d6cf009", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/dedup/page.tsx:38"}, "properties": {"repobilityId": "c6117c2ef807431c", "scanner": "scanner-primary", "fingerprint": "98c698019d6cf009", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2ea94e521f6b4ad9", "level": "note", "message": {"text": "Legacy-named symbol `setDeprecated` in apps/dashboard/app/admin/api-versioning/page.tsx:26"}, "properties": {"repobilityId": "f614e69ffe0ec5b3", "scanner": "scanner-primary", "fingerprint": "2ea94e521f6b4ad9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-46d8c5c65cd3955b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/api-versioning/page.tsx:31"}, "properties": {"repobilityId": "b7494c8939be99bb", "scanner": "scanner-primary", "fingerprint": "46d8c5c65cd3955b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53abb3663f432ffd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-analytics/page.tsx:58"}, "properties": {"repobilityId": "82370ed3eabcf88b", "scanner": "scanner-primary", "fingerprint": "53abb3663f432ffd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbe14279cb4a1344", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/dlq/page.tsx:19"}, "properties": {"repobilityId": "7defce6c15922e11", "scanner": "scanner-primary", "fingerprint": "dbe14279cb4a1344", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1850023eade3f0a6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/permissions/page.tsx:23"}, "properties": {"repobilityId": "04bc40738a465099", "scanner": "scanner-primary", "fingerprint": "1850023eade3f0a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db4c5c83b336b63f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/retention/page.tsx:50"}, "properties": {"repobilityId": "8ceb278adaeb8a5d", "scanner": "scanner-primary", "fingerprint": "db4c5c83b336b63f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4fb9e0f9b36ee914", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/entity-lifecycle/page.tsx:27"}, "properties": {"repobilityId": "5d0f1b17ef84e142", "scanner": "scanner-primary", "fingerprint": "4fb9e0f9b36ee914", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f5c24e94ff2c018c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/query-execution-analytics/page.tsx:56"}, "properties": {"repobilityId": "ba142b3d43ac84e0", "scanner": "scanner-primary", "fingerprint": "f5c24e94ff2c018c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6ac3feaeec53951", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-quality/page.tsx:56"}, "properties": {"repobilityId": "8b8ed9c3457a6ec6", "scanner": "scanner-primary", "fingerprint": "d6ac3feaeec53951", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11457800f2bf1693", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/sso/page.tsx:48"}, "properties": {"repobilityId": "7fa96be916d712c7", "scanner": "scanner-primary", "fingerprint": "11457800f2bf1693", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3fa34ebf851d786d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/data-governance/page.tsx:98"}, "properties": {"repobilityId": "7f71039c93785cb5", "scanner": "scanner-primary", "fingerprint": "3fa34ebf851d786d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbb0f9b731c5f8d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/webhooks/dlq/page.tsx:32"}, "properties": {"repobilityId": "c803ec35a8bd0bc4", "scanner": "scanner-primary", "fingerprint": "fbb0f9b731c5f8d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53ee50b42ea061e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/admin/ha-config/page.tsx:46"}, "properties": {"repobilityId": "d3e851402939fab5", "scanner": "scanner-primary", "fingerprint": "53ee50b42ea061e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5ae44912f75b84fc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/onboarding/page.tsx:36"}, "properties": {"repobilityId": "c2f1bb5802a74af4", "scanner": "scanner-primary", "fingerprint": "5ae44912f75b84fc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-faabe86a70263a54", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/app/team-insights/page.tsx:69"}, "properties": {"repobilityId": "7da3701cfccec2c5", "scanner": "scanner-primary", "fingerprint": "faabe86a70263a54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8cf60e7383f6867c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/dashboard/lib/api.ts:41"}, "properties": {"repobilityId": "5f8ad898e2ee61b2", "scanner": "scanner-primary", "fingerprint": "8cf60e7383f6867c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b0a9d14650e6885c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/mcp-server/src/slice-query-client.ts:93"}, "properties": {"repobilityId": "b7ea69c8a76be965", "scanner": "scanner-primary", "fingerprint": "b0a9d14650e6885c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7b79114eb46b4d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/ci-remediator-watch.py:186"}, "properties": {"repobilityId": "9f05632a61bae6e4", "scanner": "scanner-primary", "fingerprint": "c7b79114eb46b4d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ed6b86cc4428105", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/slice2-demo.ts:264"}, "properties": {"repobilityId": "fac14b64e46ff317", "scanner": "scanner-primary", "fingerprint": "1ed6b86cc4428105", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae45ab2d558cc699", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/daemon.py:46"}, "properties": {"repobilityId": "3a84f4f593391d1b", "scanner": "scanner-primary", "fingerprint": "ae45ab2d558cc699", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28826024e3e70390", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/daemon.py:425"}, "properties": {"repobilityId": "2be31f55cad93d07", "scanner": "scanner-primary", "fingerprint": "28826024e3e70390", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86582d126a72118e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/slice-demo.ts:61"}, "properties": {"repobilityId": "a0f94bb9319dded2", "scanner": "scanner-primary", "fingerprint": "86582d126a72118e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-513aa1ee9f6ebe2a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/slice-demo.ts:142"}, "properties": {"repobilityId": "9f748e37adeb30e7", "scanner": "scanner-primary", "fingerprint": "513aa1ee9f6ebe2a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-def2cdfec354cade", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/alerts.ts:376"}, "properties": {"repobilityId": "4091c58736d4f074", "scanner": "scanner-primary", "fingerprint": "def2cdfec354cade", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-639bfa654c9c8257", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/attribute-frequency.ts:158"}, "properties": {"repobilityId": "2ecb147ed18cb79c", "scanner": "scanner-primary", "fingerprint": "639bfa654c9c8257", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-65f477eb0fea64e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/semantic-core/src/retrieval.ts:412"}, "properties": {"repobilityId": "a83f76d1fd557f85", "scanner": "scanner-primary", "fingerprint": "65f477eb0fea64e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d7ee797ceab6258", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/sdk-generator.ts:256"}, "properties": {"repobilityId": "9a7e6d63f410bb90", "scanner": "scanner-primary", "fingerprint": "4d7ee797ceab6258", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-310ccba51b718617", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in packages/semantic-core/src/mcp-tool-versioning.ts:29"}, "properties": {"repobilityId": "6f8806b0d08cdbe3", "scanner": "scanner-primary", "fingerprint": "310ccba51b718617", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7bdf21cb212a8e30", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/semantic-core/src/mcp-tool-versioning.ts:362"}, "properties": {"repobilityId": "00be453c90ce9a83", "scanner": "scanner-primary", "fingerprint": "7bdf21cb212a8e30", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76c443396b2813f4", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in packages/semantic-core/src/__tests__/mcp-tool-versioning.test.ts:95"}, "properties": {"repobilityId": "254238fbeb743361", "scanner": "scanner-primary", "fingerprint": "76c443396b2813f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f55f9a3d6f4c709", "level": "note", "message": {"text": "Legacy-named symbol `daysOld` in packages/semantic-core/src/__tests__/query-explainer.test.ts:20"}, "properties": {"repobilityId": "b427554fd8b8908d", "scanner": "scanner-primary", "fingerprint": "3f55f9a3d6f4c709", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1d28ff8c6636deba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/jira/src/jira-connector.ts:225"}, "properties": {"repobilityId": "386944d05808d3d7", "scanner": "scanner-primary", "fingerprint": "1d28ff8c6636deba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bbee30426cdae7c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/snowflake/src/snowflake-connector.ts:261"}, "properties": {"repobilityId": "8c0ba656adbc2804", "scanner": "scanner-primary", "fingerprint": "0bbee30426cdae7c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d8e681026557288c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/netsuite/src/netsuite-connector.ts:229"}, "properties": {"repobilityId": "64f40dd4003a49a8", "scanner": "scanner-primary", "fingerprint": "d8e681026557288c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4905d52ef965c4d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/quickbooks/src/quickbooks-connector.ts:231"}, "properties": {"repobilityId": "1d0f1cde2e143809", "scanner": "scanner-primary", "fingerprint": "4905d52ef965c4d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cef6880df457d84b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connectors/confluence/src/confluence-connector.ts:229"}, "properties": {"repobilityId": "b052f6e4431e5298", "scanner": "scanner-primary", "fingerprint": "cef6880df457d84b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc3f14535879dace", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:35"}, "properties": {"repobilityId": "0f295dcfc53a9004", "scanner": "scanner-primary", "fingerprint": "dc3f14535879dace", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0b17c8c07a7421d", "level": "note", "message": {"text": "8 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "17fe720e8247f9df", "scanner": "scanner-primary", "fingerprint": "d0b17c8c07a7421d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-c0f20709f0921609", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/hubspot/reliability (apps/api/src/__tests__/reliability-scoring.test.ts:44)"}, "properties": {"repobilityId": "ac31402c3a0cbcd5", "scanner": "scanner-primary", "fingerprint": "c0f20709f0921609", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3bf6361ee5b0b142", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/hubspot/reliability (apps/api/src/__tests__/reliability-scoring.test.ts:56)"}, "properties": {"repobilityId": "5fa84bfa6d1125a2", "scanner": "scanner-primary", "fingerprint": "3bf6361ee5b0b142", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6da94fbc2ce67565", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/hubspot/alerts (apps/api/src/__tests__/reliability-scoring.test.ts:70)"}, "properties": {"repobilityId": "5b378673cf72af11", "scanner": "scanner-primary", "fingerprint": "6da94fbc2ce67565", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f03fcce5dda45ee2", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/suppress-alert (apps/api/src/__tests__/reliability-scoring.test.ts:83)"}, "properties": {"repobilityId": "9b30ef5b9ef5a4ea", "scanner": "scanner-primary", "fingerprint": "f03fcce5dda45ee2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fca223c09cfd7389", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/suppress-alert (apps/api/src/__tests__/reliability-scoring.test.ts:97)"}, "properties": {"repobilityId": "0189967bd89e710a", "scanner": "scanner-primary", "fingerprint": "fca223c09cfd7389", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7513adee19c31ee6", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/assess (apps/api/src/__tests__/reliability-scoring.test.ts:111)"}, "properties": {"repobilityId": "38eeb31a5ee2b6ac", "scanner": "scanner-primary", "fingerprint": "7513adee19c31ee6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f8df3b2b78db9fb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:54)"}, "properties": {"repobilityId": "40bc99deefa12e1c", "scanner": "scanner-primary", "fingerprint": "3f8df3b2b78db9fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d0c13693c727c39", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:62)"}, "properties": {"repobilityId": "429dd814dd1f534e", "scanner": "scanner-primary", "fingerprint": "8d0c13693c727c39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-796f2d285aeecd66", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/sync-metrics?days=7 (apps/api/src/__tests__/sync-metrics.test.ts:72)"}, "properties": {"repobilityId": "f1339ac406fad89f", "scanner": "scanner-primary", "fingerprint": "796f2d285aeecd66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f7f4ca2ea0ccc3c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:88)"}, "properties": {"repobilityId": "c5ca88c09755005c", "scanner": "scanner-primary", "fingerprint": "3f7f4ca2ea0ccc3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1028ac6c5d51cdc5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:103)"}, "properties": {"repobilityId": "3623b09a20119c36", "scanner": "scanner-primary", "fingerprint": "1028ac6c5d51cdc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fabe1f116afb4993", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/sync-metrics (apps/api/src/__tests__/sync-metrics.test.ts:113)"}, "properties": {"repobilityId": "62b7e8c7a7702fb1", "scanner": "scanner-primary", "fingerprint": "fabe1f116afb4993", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-309008d6275b6a3e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/optimize (apps/api/src/__tests__/sync-metrics.test.ts:146)"}, "properties": {"repobilityId": "fcbcc570ae2f9030", "scanner": "scanner-primary", "fingerprint": "309008d6275b6a3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-57cf7f55b3528e52", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/optimize (apps/api/src/__tests__/sync-metrics.test.ts:154)"}, "properties": {"repobilityId": "d023a04cf4e65cad", "scanner": "scanner-primary", "fingerprint": "57cf7f55b3528e52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f801a1436b6f0333", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:49)"}, "properties": {"repobilityId": "3691320ed1dc7e1e", "scanner": "scanner-primary", "fingerprint": "f801a1436b6f0333", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bbc96caf058ef74c", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:66)"}, "properties": {"repobilityId": "8b4ba700d50107ee", "scanner": "scanner-primary", "fingerprint": "bbc96caf058ef74c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ff2f604e2756494", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/subscribe (apps/api/src/__tests__/mcp-subscriptions.test.ts:87)"}, "properties": {"repobilityId": "03c2656840f4a493", "scanner": "scanner-primary", "fingerprint": "0ff2f604e2756494", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ce4760a177e88ca2", "level": "error", "message": {"text": "Dangling fetch: DELETE /mcp/subscriptions/sub-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:106)"}, "properties": {"repobilityId": "f30f6fa1d6b99551", "scanner": "scanner-primary", "fingerprint": "ce4760a177e88ca2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-86d93558df7c9272", "level": "error", "message": {"text": "Dangling fetch: DELETE /mcp/subscriptions/sub-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:117)"}, "properties": {"repobilityId": "6ccb6c1c594be93f", "scanner": "scanner-primary", "fingerprint": "86d93558df7c9272", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-813cc1111e344b23", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/subscriptions (apps/api/src/__tests__/mcp-subscriptions.test.ts:129)"}, "properties": {"repobilityId": "1945078a50472ca1", "scanner": "scanner-primary", "fingerprint": "813cc1111e344b23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59db8e97a3b2454a", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/subscriptions?workspaceId=ws-1 (apps/api/src/__tests__/mcp-subscriptions.test.ts:139)"}, "properties": {"repobilityId": "63debcc7acc590b8", "scanner": "scanner-primary", "fingerprint": "59db8e97a3b2454a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-139716538492a774", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/subscriptions/sub-1/events (apps/api/src/__tests__/mcp-subscriptions.test.ts:153)"}, "properties": {"repobilityId": "fedd793aaaa610ff", "scanner": "scanner-primary", "fingerprint": "139716538492a774", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-465cbdf5d97e39d2", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:60)"}, "properties": {"repobilityId": "4e668eea8e5a9d14", "scanner": "scanner-primary", "fingerprint": "465cbdf5d97e39d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b5faaba869cf8ac", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:70)"}, "properties": {"repobilityId": "6d2fab0e74033594", "scanner": "scanner-primary", "fingerprint": "8b5faaba869cf8ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-985e1f2903efe5bc", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs?action=invalid_action (apps/api/src/__tests__/audit-logs.test.ts:77)"}, "properties": {"repobilityId": "0fb3afad86b27562", "scanner": "scanner-primary", "fingerprint": "985e1f2903efe5bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b456c0e98c8a129e", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:85)"}, "properties": {"repobilityId": "915a92a8bd76081d", "scanner": "scanner-primary", "fingerprint": "b456c0e98c8a129e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3817a77898143ed", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs?cursor=abc&limit=10 (apps/api/src/__tests__/audit-logs.test.ts:93)"}, "properties": {"repobilityId": "1bd5b3597ec5701c", "scanner": "scanner-primary", "fingerprint": "c3817a77898143ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-542be2fe1c488221", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs (apps/api/src/__tests__/audit-logs.test.ts:105)"}, "properties": {"repobilityId": "9da2899c1ccb807c", "scanner": "scanner-primary", "fingerprint": "542be2fe1c488221", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd75af25900ad197", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs/export?format=json (apps/api/src/__tests__/audit-logs.test.ts:117)"}, "properties": {"repobilityId": "6512b3bf0da3556a", "scanner": "scanner-primary", "fingerprint": "fd75af25900ad197", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-42c79550790e9f80", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs/export?format=csv (apps/api/src/__tests__/audit-logs.test.ts:127)"}, "properties": {"repobilityId": "2cef64ee84f46544", "scanner": "scanner-primary", "fingerprint": "42c79550790e9f80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4b7895c7b1f0966", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:137)"}, "properties": {"repobilityId": "38340c5d82b50d20", "scanner": "scanner-primary", "fingerprint": "c4b7895c7b1f0966", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b090eedf2bce883", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:145)"}, "properties": {"repobilityId": "9785b1fa8d00811f", "scanner": "scanner-primary", "fingerprint": "8b090eedf2bce883", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7d34e8dd39558db3", "level": "error", "message": {"text": "Dangling fetch: GET /audit-logs/export (apps/api/src/__tests__/audit-logs.test.ts:153)"}, "properties": {"repobilityId": "6109b41036daf2b9", "scanner": "scanner-primary", "fingerprint": "7d34e8dd39558db3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef32b8bba8ad17e3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/team-1/recommended-contexts (apps/api/src/__tests__/team-recommendations.test.ts:42)"}, "properties": {"repobilityId": "e6f6f4ddc9454584", "scanner": "scanner-primary", "fingerprint": "ef32b8bba8ad17e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52edd48d99558b73", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/team-1/recommended-contexts?topK=5 (apps/api/src/__tests__/team-recommendations.test.ts:49)"}, "properties": {"repobilityId": "924015dee45c3eb8", "scanner": "scanner-primary", "fingerprint": "52edd48d99558b73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2e06771e092aad7d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/team-1/usage (apps/api/src/__tests__/team-recommendations.test.ts:56)"}, "properties": {"repobilityId": "ee1cce1433265090", "scanner": "scanner-primary", "fingerprint": "2e06771e092aad7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be453ca8ff64e18c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/team-1/usage?window=7d (apps/api/src/__tests__/team-recommendations.test.ts:63)"}, "properties": {"repobilityId": "89076c3e1ed74fd0", "scanner": "scanner-primary", "fingerprint": "be453ca8ff64e18c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b295e76f7ef2533f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/team-1/expansion-suggestions (apps/api/src/__tests__/team-recommendations.test.ts:70)"}, "properties": {"repobilityId": "bd6cb0259a6e95ac", "scanner": "scanner-primary", "fingerprint": "b295e76f7ef2533f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ff332ef5f06cdac", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/teams/team-1/context-preferences (apps/api/src/__tests__/team-recommendations.test.ts:79)"}, "properties": {"repobilityId": "8f9df97cb3bdb22c", "scanner": "scanner-primary", "fingerprint": "3ff332ef5f06cdac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5fa0cc321448a78a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/teams/team-1/context-preferences (apps/api/src/__tests__/team-recommendations.test.ts:90)"}, "properties": {"repobilityId": "f8183d76b9f14af9", "scanner": "scanner-primary", "fingerprint": "5fa0cc321448a78a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-297a90bc3b139fca", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/teams/team-1/context-access (apps/api/src/__tests__/team-recommendations.test.ts:101)"}, "properties": {"repobilityId": "200bf374884e703b", "scanner": "scanner-primary", "fingerprint": "297a90bc3b139fca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f2ddd89f5fbe2c9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/teams/team-1/context-access (apps/api/src/__tests__/team-recommendations.test.ts:110)"}, "properties": {"repobilityId": "ba0427a3a7c256f1", "scanner": "scanner-primary", "fingerprint": "5f2ddd89f5fbe2c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-48dc28108a32d805", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/roles/admin/context-predictions (apps/api/src/__tests__/team-recommendations.test.ts:121)"}, "properties": {"repobilityId": "bd64756f44aa2023", "scanner": "scanner-primary", "fingerprint": "48dc28108a32d805", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93bd261ca2922f2c", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:47)"}, "properties": {"repobilityId": "512f0c0dbce37105", "scanner": "scanner-primary", "fingerprint": "93bd261ca2922f2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d0fec8f221e6c190", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:55)"}, "properties": {"repobilityId": "0d1b223e6dcba7e3", "scanner": "scanner-primary", "fingerprint": "d0fec8f221e6c190", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b1ab22096464e5e", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report?entityType=contact (apps/api/src/__tests__/data-quality.test.ts:61)"}, "properties": {"repobilityId": "01c2fd6b406024fc", "scanner": "scanner-primary", "fingerprint": "5b1ab22096464e5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-009a425c225319e3", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality.test.ts:67)"}, "properties": {"repobilityId": "2bbb955dae82146c", "scanner": "scanner-primary", "fingerprint": "009a425c225319e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-24de5dc0aa6ffbfe", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/entities/e1 (apps/api/src/__tests__/data-quality.test.ts:74)"}, "properties": {"repobilityId": "45afd8a90874a02e", "scanner": "scanner-primary", "fingerprint": "24de5dc0aa6ffbfe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c20102a3abf7e3e", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:81)"}, "properties": {"repobilityId": "0bf6dfff398bbf28", "scanner": "scanner-primary", "fingerprint": "5c20102a3abf7e3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-74ade0c2727a00d4", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:89)"}, "properties": {"repobilityId": "3e76d0204eabb057", "scanner": "scanner-primary", "fingerprint": "74ade0c2727a00d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-96d62b5f4c2cbda6", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/members (apps/api/src/__tests__/workspace-members.test.ts:95)"}, "properties": {"repobilityId": "354517d5912dcd3e", "scanner": "scanner-primary", "fingerprint": "96d62b5f4c2cbda6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7af5bcd1a698fa5", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:102)"}, "properties": {"repobilityId": "c3c33ce578e179d6", "scanner": "scanner-primary", "fingerprint": "c7af5bcd1a698fa5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b74852be9d984375", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:112)"}, "properties": {"repobilityId": "e38f66845d126588", "scanner": "scanner-primary", "fingerprint": "b74852be9d984375", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd3a607b7fcb9a55", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:121)"}, "properties": {"repobilityId": "9055cebb03433615", "scanner": "scanner-primary", "fingerprint": "dd3a607b7fcb9a55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1c9e87719d39703a", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/members/invite (apps/api/src/__tests__/workspace-members.test.ts:131)"}, "properties": {"repobilityId": "c6c218be233d3ddd", "scanner": "scanner-primary", "fingerprint": "1c9e87719d39703a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d7f0fe0a58cdfd3c", "level": "error", "message": {"text": "Dangling fetch: PUT /workspace/members/${USER_A}/role (apps/api/src/__tests__/workspace-members.test.ts:142)"}, "properties": {"repobilityId": "1c817e9c8e30b239", "scanner": "scanner-primary", "fingerprint": "d7f0fe0a58cdfd3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff025dbea64bb056", "level": "error", "message": {"text": "Dangling fetch: PUT /workspace/members/unknown/role (apps/api/src/__tests__/workspace-members.test.ts:154)"}, "properties": {"repobilityId": "f0b44bef32f6b57b", "scanner": "scanner-primary", "fingerprint": "ff025dbea64bb056", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-857d47514dcadf75", "level": "error", "message": {"text": "Dangling fetch: PUT /workspace/members/${USER_A}/role (apps/api/src/__tests__/workspace-members.test.ts:163)"}, "properties": {"repobilityId": "806d268dfeed9781", "scanner": "scanner-primary", "fingerprint": "857d47514dcadf75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ad6f3b8cb5788637", "level": "error", "message": {"text": "Dangling fetch: DELETE /workspace/members/${USER_A} (apps/api/src/__tests__/workspace-members.test.ts:174)"}, "properties": {"repobilityId": "44c6c566777608e3", "scanner": "scanner-primary", "fingerprint": "ad6f3b8cb5788637", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f0e0f5dc72a5d76", "level": "error", "message": {"text": "Dangling fetch: DELETE /workspace/members/${USER_A} (apps/api/src/__tests__/workspace-members.test.ts:184)"}, "properties": {"repobilityId": "411b7ce9f924e2c3", "scanner": "scanner-primary", "fingerprint": "0f0e0f5dc72a5d76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a4c63410f2c3f7f", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:191)"}, "properties": {"repobilityId": "d8cc416896090d7b", "scanner": "scanner-primary", "fingerprint": "4a4c63410f2c3f7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-65dbf7122d63367e", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:207)"}, "properties": {"repobilityId": "6a2e28791b565791", "scanner": "scanner-primary", "fingerprint": "65dbf7122d63367e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e2070666a3e12f8d", "level": "error", "message": {"text": "Dangling fetch: POST /workspace/shares (apps/api/src/__tests__/workspace-members.test.ts:222)"}, "properties": {"repobilityId": "4e3a265f12581f58", "scanner": "scanner-primary", "fingerprint": "e2070666a3e12f8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c834ee91141d659c", "level": "error", "message": {"text": "Dangling fetch: DELETE /workspace/shares?resourceType=connector&resourceId=conn-1&targetUserId=${USER_B} (apps/api/src/__tests__/workspace-members.test.ts:233)"}, "properties": {"repobilityId": "43b24865ec123e59", "scanner": "scanner-primary", "fingerprint": "c834ee91141d659c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2616953a27423796", "level": "error", "message": {"text": "Dangling fetch: DELETE /workspace/shares?resourceType=connector (apps/api/src/__tests__/workspace-members.test.ts:243)"}, "properties": {"repobilityId": "8c3611310ebcef32", "scanner": "scanner-primary", "fingerprint": "2616953a27423796", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ecd5f652a283e0f", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/permissions/check?action=read (apps/api/src/__tests__/workspace-members.test.ts:250)"}, "properties": {"repobilityId": "eac394a63e479e7a", "scanner": "scanner-primary", "fingerprint": "1ecd5f652a283e0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3884439cbbb2ed4b", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/permissions/check (apps/api/src/__tests__/workspace-members.test.ts:257)"}, "properties": {"repobilityId": "a7407bdddef09fc3", "scanner": "scanner-primary", "fingerprint": "3884439cbbb2ed4b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87c14c5e106bfbfa", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/permissions/check?action=read (apps/api/src/__tests__/workspace-members.test.ts:262)"}, "properties": {"repobilityId": "abc3d3d40d19c453", "scanner": "scanner-primary", "fingerprint": "87c14c5e106bfbfa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-abd96e2a51ede4eb", "level": "error", "message": {"text": "Dangling fetch: GET /workspace/permissions/check?action=delete_workspace (apps/api/src/__tests__/workspace-members.test.ts:268)"}, "properties": {"repobilityId": "ef87e79dccca5087", "scanner": "scanner-primary", "fingerprint": "abd96e2a51ede4eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-275baf467362221d", "level": "error", "message": {"text": "Dangling fetch: GET /permissions/fields?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:27)"}, "properties": {"repobilityId": "c329b185493a3fb5", "scanner": "scanner-primary", "fingerprint": "275baf467362221d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3696cb1c85534e7f", "level": "error", "message": {"text": "Dangling fetch: GET /permissions/fields?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:41)"}, "properties": {"repobilityId": "08568d247fb681a3", "scanner": "scanner-primary", "fingerprint": "3696cb1c85534e7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93e56b8272d1ba83", "level": "error", "message": {"text": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:53)"}, "properties": {"repobilityId": "711303c0170a2c77", "scanner": "scanner-primary", "fingerprint": "93e56b8272d1ba83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5222ef5bcb12a87f", "level": "error", "message": {"text": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:66)"}, "properties": {"repobilityId": "a8bae838f766164a", "scanner": "scanner-primary", "fingerprint": "5222ef5bcb12a87f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18b5a92ffc3bc71e", "level": "error", "message": {"text": "Dangling fetch: POST /permissions/fields (apps/api/src/__tests__/granular-permissions.test.ts:76)"}, "properties": {"repobilityId": "238c4cfb04ca65c1", "scanner": "scanner-primary", "fingerprint": "18b5a92ffc3bc71e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a6000bdb4fbe0d6", "level": "error", "message": {"text": "Dangling fetch: DELETE /permissions/fields/fp-abc?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:90)"}, "properties": {"repobilityId": "de3449444688c6ca", "scanner": "scanner-primary", "fingerprint": "3a6000bdb4fbe0d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-19fc0d3179df5a23", "level": "error", "message": {"text": "Dangling fetch: GET /permissions/connectors?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:104)"}, "properties": {"repobilityId": "848828c47cc9f50a", "scanner": "scanner-primary", "fingerprint": "19fc0d3179df5a23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa17b2c0085bf972", "level": "error", "message": {"text": "Dangling fetch: GET /permissions/connectors?workspaceId=ws-1 (apps/api/src/__tests__/granular-permissions.test.ts:116)"}, "properties": {"repobilityId": "02e934cdbdd84fc2", "scanner": "scanner-primary", "fingerprint": "aa17b2c0085bf972", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-951af36501ce0fbd", "level": "error", "message": {"text": "Dangling fetch: POST /permissions/connectors (apps/api/src/__tests__/granular-permissions.test.ts:128)"}, "properties": {"repobilityId": "e28f5f70888df1a1", "scanner": "scanner-primary", "fingerprint": "951af36501ce0fbd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18d442d9b0a879cb", "level": "error", "message": {"text": "Dangling fetch: POST /permissions/connectors (apps/api/src/__tests__/granular-permissions.test.ts:140)"}, "properties": {"repobilityId": "2281642aec5e90c3", "scanner": "scanner-primary", "fingerprint": "18d442d9b0a879cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-edbef1e56d750693", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/insights (apps/api/src/__tests__/insights.test.ts:48)"}, "properties": {"repobilityId": "4b92192a2e0cf07d", "scanner": "scanner-primary", "fingerprint": "edbef1e56d750693", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b05c2f13d7bf9d42", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/insights?type=missing_data (apps/api/src/__tests__/insights.test.ts:55)"}, "properties": {"repobilityId": "974ce3c59859c80a", "scanner": "scanner-primary", "fingerprint": "b05c2f13d7bf9d42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4160c3b4ad216e05", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/insights?severity=warning (apps/api/src/__tests__/insights.test.ts:60)"}, "properties": {"repobilityId": "b420fd5b5006efbe", "scanner": "scanner-primary", "fingerprint": "4160c3b4ad216e05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-480d0522dec8a328", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/discover (apps/api/src/__tests__/insights.test.ts:67)"}, "properties": {"repobilityId": "171345c7a1b9c765", "scanner": "scanner-primary", "fingerprint": "480d0522dec8a328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e626c29e2564794c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/discover (apps/api/src/__tests__/insights.test.ts:78)"}, "properties": {"repobilityId": "38fae30a864215ed", "scanner": "scanner-primary", "fingerprint": "e626c29e2564794c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84b91d2783345a86", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:89)"}, "properties": {"repobilityId": "4f5a8e81c93c6712", "scanner": "scanner-primary", "fingerprint": "84b91d2783345a86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0c69174d11b37b6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:98)"}, "properties": {"repobilityId": "769cd31ab032fea7", "scanner": "scanner-primary", "fingerprint": "b0c69174d11b37b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e00fb783db83218", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/scheduled (apps/api/src/__tests__/insights.test.ts:109)"}, "properties": {"repobilityId": "23ee9c10a14581fd", "scanner": "scanner-primary", "fingerprint": "3e00fb783db83218", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-85367ead3ee18bf9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/ins-1/feedback (apps/api/src/__tests__/insights.test.ts:120)"}, "properties": {"repobilityId": "dbbd986a0cf7d4d8", "scanner": "scanner-primary", "fingerprint": "85367ead3ee18bf9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ac93b40ddd704f93", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/ins-1/feedback (apps/api/src/__tests__/insights.test.ts:129)"}, "properties": {"repobilityId": "0df4471f320b1986", "scanner": "scanner-primary", "fingerprint": "ac93b40ddd704f93", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-293a0b25089b4de1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/insights/report/contact (apps/api/src/__tests__/insights.test.ts:140)"}, "properties": {"repobilityId": "c6ff302924ee1d41", "scanner": "scanner-primary", "fingerprint": "293a0b25089b4de1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8ab20ea886bc2e38", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:40)"}, "properties": {"repobilityId": "25ddf18b95ccf896", "scanner": "scanner-primary", "fingerprint": "8ab20ea886bc2e38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7f22cb2e61635913", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:48)"}, "properties": {"repobilityId": "b6b334d7d577ee08", "scanner": "scanner-primary", "fingerprint": "7f22cb2e61635913", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5135029da8eb5f67", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:54)"}, "properties": {"repobilityId": "7d80bb49509403c4", "scanner": "scanner-primary", "fingerprint": "5135029da8eb5f67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c74272218570bbf", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:60)"}, "properties": {"repobilityId": "449c4c2aeb13b65d", "scanner": "scanner-primary", "fingerprint": "9c74272218570bbf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e42b6ef46c1c3c62", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:66)"}, "properties": {"repobilityId": "33322d9c0891ffbb", "scanner": "scanner-primary", "fingerprint": "e42b6ef46c1c3c62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5290d0dc1481899a", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health?table=my_vectors (apps/api/src/__tests__/vector-store-admin.test.ts:72)"}, "properties": {"repobilityId": "bec7fffebc5c74f3", "scanner": "scanner-primary", "fingerprint": "5290d0dc1481899a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-81c68ed4d6072778", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health?latencySla=10 (apps/api/src/__tests__/vector-store-admin.test.ts:77)"}, "properties": {"repobilityId": "9ebc54aa621fe7e6", "scanner": "scanner-primary", "fingerprint": "81c68ed4d6072778", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fcf52042608bc6e5", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:84)"}, "properties": {"repobilityId": "657821ce57c5a5a0", "scanner": "scanner-primary", "fingerprint": "fcf52042608bc6e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e50d2d79b3f8ba95", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-store/health (apps/api/src/__tests__/vector-store-admin.test.ts:89)"}, "properties": {"repobilityId": "e8a84417970b1d6a", "scanner": "scanner-primary", "fingerprint": "e50d2d79b3f8ba95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cb0df4eb7c6bfa97", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:99)"}, "properties": {"repobilityId": "d18561f6db42ac70", "scanner": "scanner-primary", "fingerprint": "cb0df4eb7c6bfa97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-efbab47829f67b33", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:110)"}, "properties": {"repobilityId": "ac696f8b0dfe9162", "scanner": "scanner-primary", "fingerprint": "efbab47829f67b33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d73f87a10e41d99", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:121)"}, "properties": {"repobilityId": "43334f1af21a8668", "scanner": "scanner-primary", "fingerprint": "5d73f87a10e41d99", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9f150b1355e2498e", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-store/reindex (apps/api/src/__tests__/vector-store-admin.test.ts:130)"}, "properties": {"repobilityId": "479d8466dadbbb6b", "scanner": "scanner-primary", "fingerprint": "9f150b1355e2498e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-afe102d33ab9b0fe", "level": "error", "message": {"text": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:48)"}, "properties": {"repobilityId": "0df5436189a64e9a", "scanner": "scanner-primary", "fingerprint": "afe102d33ab9b0fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df26aebbd65264fc", "level": "error", "message": {"text": "Dangling fetch: GET /pii-config (apps/api/src/__tests__/pii-config.test.ts:56)"}, "properties": {"repobilityId": "526223b8be61e211", "scanner": "scanner-primary", "fingerprint": "df26aebbd65264fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-515f4724da17c4b1", "level": "error", "message": {"text": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:62)"}, "properties": {"repobilityId": "3895b11aa8ab8be6", "scanner": "scanner-primary", "fingerprint": "515f4724da17c4b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fe44aad96b81cc3d", "level": "error", "message": {"text": "Dangling fetch: GET /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:68)"}, "properties": {"repobilityId": "9bbdeaf8ef255d43", "scanner": "scanner-primary", "fingerprint": "fe44aad96b81cc3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49140b0df52a4422", "level": "error", "message": {"text": "Dangling fetch: GET /pii-config?workspaceId=my-workspace (apps/api/src/__tests__/pii-config.test.ts:76)"}, "properties": {"repobilityId": "68935f70cc2efa7b", "scanner": "scanner-primary", "fingerprint": "49140b0df52a4422", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b12b5858bf219ff9", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:84)"}, "properties": {"repobilityId": "eafa0de5d14432df", "scanner": "scanner-primary", "fingerprint": "b12b5858bf219ff9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d80d9456b749b94", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config (apps/api/src/__tests__/pii-config.test.ts:95)"}, "properties": {"repobilityId": "ed7cb84b413ea191", "scanner": "scanner-primary", "fingerprint": "8d80d9456b749b94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1836161b16257dbb", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:104)"}, "properties": {"repobilityId": "b9d9399c94206227", "scanner": "scanner-primary", "fingerprint": "1836161b16257dbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-82a5c65895564312", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:113)"}, "properties": {"repobilityId": "6db0d0c28ae48c1a", "scanner": "scanner-primary", "fingerprint": "82a5c65895564312", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7186d9cf7a7f3027", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:123)"}, "properties": {"repobilityId": "cc41400ba1ed9e96", "scanner": "scanner-primary", "fingerprint": "7186d9cf7a7f3027", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed70171ab534a321", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:133)"}, "properties": {"repobilityId": "53d1b19523b49bfd", "scanner": "scanner-primary", "fingerprint": "ed70171ab534a321", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0ad49ae29f8032b", "level": "error", "message": {"text": "Dangling fetch: PUT /pii-config?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:147)"}, "properties": {"repobilityId": "aed03dac8e5da6a0", "scanner": "scanner-primary", "fingerprint": "b0ad49ae29f8032b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ac5627214133b083", "level": "error", "message": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:159)"}, "properties": {"repobilityId": "a0925bd442b9aced", "scanner": "scanner-primary", "fingerprint": "ac5627214133b083", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1dfa1f7529e4f150", "level": "error", "message": {"text": "Dangling fetch: POST /pii-config/fields (apps/api/src/__tests__/pii-config.test.ts:168)"}, "properties": {"repobilityId": "bd878857e8432b69", "scanner": "scanner-primary", "fingerprint": "1dfa1f7529e4f150", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1071c2ed299f664", "level": "error", "message": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:177)"}, "properties": {"repobilityId": "502bd307ba3e0d1b", "scanner": "scanner-primary", "fingerprint": "e1071c2ed299f664", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea4591702d475406", "level": "error", "message": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:186)"}, "properties": {"repobilityId": "629374c27dd718b1", "scanner": "scanner-primary", "fingerprint": "ea4591702d475406", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-35eb71ffa4c7451d", "level": "error", "message": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:196)"}, "properties": {"repobilityId": "a4898cdeb5f22dde", "scanner": "scanner-primary", "fingerprint": "35eb71ffa4c7451d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ae759ba0c5c5df7c", "level": "error", "message": {"text": "Dangling fetch: POST /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:206)"}, "properties": {"repobilityId": "35258be916079957", "scanner": "scanner-primary", "fingerprint": "ae759ba0c5c5df7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a4b7cd3b43458e00", "level": "error", "message": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:223)"}, "properties": {"repobilityId": "f9dc6145ff5e5de0", "scanner": "scanner-primary", "fingerprint": "a4b7cd3b43458e00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-504fb20601ab5abc", "level": "error", "message": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:235)"}, "properties": {"repobilityId": "8aa6884b8f18e95f", "scanner": "scanner-primary", "fingerprint": "504fb20601ab5abc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44eed94294827c71", "level": "error", "message": {"text": "Dangling fetch: DELETE /pii-config/fields (apps/api/src/__tests__/pii-config.test.ts:245)"}, "properties": {"repobilityId": "cfa2bbe0228f8370", "scanner": "scanner-primary", "fingerprint": "44eed94294827c71", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f32af0aed7f6fee", "level": "error", "message": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:254)"}, "properties": {"repobilityId": "9204d6160f502cb3", "scanner": "scanner-primary", "fingerprint": "3f32af0aed7f6fee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84c101520f0e60d3", "level": "error", "message": {"text": "Dangling fetch: DELETE /pii-config/fields?workspaceId=ws-1 (apps/api/src/__tests__/pii-config.test.ts:264)"}, "properties": {"repobilityId": "dc385e4725445147", "scanner": "scanner-primary", "fingerprint": "84c101520f0e60d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f0dfbbb8058bc432", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/budget-status (apps/api/src/__tests__/budget-management.test.ts:59)"}, "properties": {"repobilityId": "5cd766be3ee229d5", "scanner": "scanner-primary", "fingerprint": "f0dfbbb8058bc432", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e4c5b9cd9e63035d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/budget-status (apps/api/src/__tests__/budget-management.test.ts:82)"}, "properties": {"repobilityId": "3ff0662c15c879d1", "scanner": "scanner-primary", "fingerprint": "e4c5b9cd9e63035d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-088fee9f80cb2972", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:98)"}, "properties": {"repobilityId": "b4107409e782fbe8", "scanner": "scanner-primary", "fingerprint": "088fee9f80cb2972", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69ea83780edd2d10", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:110)"}, "properties": {"repobilityId": "ed7b35aefc94cff7", "scanner": "scanner-primary", "fingerprint": "69ea83780edd2d10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f4285f5d695341e6", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:121)"}, "properties": {"repobilityId": "e32444c338d5b149", "scanner": "scanner-primary", "fingerprint": "f4285f5d695341e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-400eb4e73e4bd478", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:130)"}, "properties": {"repobilityId": "87875f431e490c26", "scanner": "scanner-primary", "fingerprint": "400eb4e73e4bd478", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1554ad5aa0d2c8fe", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/budget-config (apps/api/src/__tests__/budget-management.test.ts:139)"}, "properties": {"repobilityId": "ac874046284617ab", "scanner": "scanner-primary", "fingerprint": "1554ad5aa0d2c8fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4af3f9e50a06f7ea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/budget-history?days=7 (apps/api/src/__tests__/budget-management.test.ts:163)"}, "properties": {"repobilityId": "20fbd49edac4fd6c", "scanner": "scanner-primary", "fingerprint": "4af3f9e50a06f7ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52efa80df2f04f95", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/budget-history?days=180 (apps/api/src/__tests__/budget-management.test.ts:174)"}, "properties": {"repobilityId": "865135ab3cf45421", "scanner": "scanner-primary", "fingerprint": "52efa80df2f04f95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-29671f95b361c614", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/budget-history (apps/api/src/__tests__/budget-management.test.ts:182)"}, "properties": {"repobilityId": "ac0d1e74688f368d", "scanner": "scanner-primary", "fingerprint": "29671f95b361c614", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5457a43271bc9a1", "level": "error", "message": {"text": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:45)"}, "properties": {"repobilityId": "111d8a24162115d9", "scanner": "scanner-primary", "fingerprint": "b5457a43271bc9a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a252d3c3470b316", "level": "error", "message": {"text": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:57)"}, "properties": {"repobilityId": "8a036f785b266e59", "scanner": "scanner-primary", "fingerprint": "5a252d3c3470b316", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cd74b32aefaa11a8", "level": "error", "message": {"text": "Dangling fetch: POST /agents/agent-1/feedback (apps/api/src/__tests__/agent-feedback.test.ts:66)"}, "properties": {"repobilityId": "40eb47375c87ae64", "scanner": "scanner-primary", "fingerprint": "cd74b32aefaa11a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-605e00fcab7a1e61", "level": "error", "message": {"text": "Dangling fetch: GET /agents/agent-1/insights (apps/api/src/__tests__/agent-feedback.test.ts:77)"}, "properties": {"repobilityId": "d76bd2a531be41ee", "scanner": "scanner-primary", "fingerprint": "605e00fcab7a1e61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71965f461cc9a5fa", "level": "error", "message": {"text": "Dangling fetch: GET /agents/entities/contact/feedback-score (apps/api/src/__tests__/agent-feedback.test.ts:90)"}, "properties": {"repobilityId": "48a222ed1d34c569", "scanner": "scanner-primary", "fingerprint": "71965f461cc9a5fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-27a75cb1c894c94f", "level": "error", "message": {"text": "Dangling fetch: GET /agents/entities/unknown-type/feedback-score (apps/api/src/__tests__/agent-feedback.test.ts:99)"}, "properties": {"repobilityId": "ba902bb775914a6d", "scanner": "scanner-primary", "fingerprint": "27a75cb1c894c94f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d119cf52e434466", "level": "error", "message": {"text": "Dangling fetch: GET /agents/relevance-adjustments (apps/api/src/__tests__/agent-feedback.test.ts:110)"}, "properties": {"repobilityId": "16c2a1e1632a742d", "scanner": "scanner-primary", "fingerprint": "3d119cf52e434466", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03b94e67539ee369", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmark-snapshot (apps/api/src/__tests__/benchmarking.test.ts:32)"}, "properties": {"repobilityId": "23cbcbee7433678a", "scanner": "scanner-primary", "fingerprint": "03b94e67539ee369", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-122e3348398ca731", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:41)"}, "properties": {"repobilityId": "8b28c49752fab6dd", "scanner": "scanner-primary", "fingerprint": "122e3348398ca731", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d3507c99e4513e7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:51)"}, "properties": {"repobilityId": "6f37c0f16d3577f0", "scanner": "scanner-primary", "fingerprint": "4d3507c99e4513e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e66e2b0fde6ac071", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison (apps/api/src/__tests__/benchmarking.test.ts:61)"}, "properties": {"repobilityId": "6936ed3fadf9ecba", "scanner": "scanner-primary", "fingerprint": "e66e2b0fde6ac071", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-231786549b4f3be2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=software&companySize=smb (apps/api/src/__tests__/benchmarking.test.ts:70)"}, "properties": {"repobilityId": "bfbd5a3a78e77b96", "scanner": "scanner-primary", "fingerprint": "231786549b4f3be2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d2e8e5d0c9c6016", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/peer-comparison?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:80)"}, "properties": {"repobilityId": "1046292c817a70ed", "scanner": "scanner-primary", "fingerprint": "3d2e8e5d0c9c6016", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2efdaa08d411197b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:90)"}, "properties": {"repobilityId": "815978fe754b2682", "scanner": "scanner-primary", "fingerprint": "2efdaa08d411197b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-70be76d4a3fdcd6f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/settings?workspaceId=${WORKSPACE} (apps/api/src/__tests__/benchmarking.test.ts:99)"}, "properties": {"repobilityId": "6f26b498282f3131", "scanner": "scanner-primary", "fingerprint": "70be76d4a3fdcd6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c1bb20ce3ed1bf9", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:111)"}, "properties": {"repobilityId": "9a24f18198705fb9", "scanner": "scanner-primary", "fingerprint": "9c1bb20ce3ed1bf9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ec3609094d3881c0", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/benchmarks/settings (apps/api/src/__tests__/benchmarking.test.ts:124)"}, "properties": {"repobilityId": "da02ca1bb02ce79c", "scanner": "scanner-primary", "fingerprint": "ec3609094d3881c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0849cd560432ecc9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:140)"}, "properties": {"repobilityId": "2df0c95d4cc19185", "scanner": "scanner-primary", "fingerprint": "0849cd560432ecc9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20d3abe5f64d5720", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:152)"}, "properties": {"repobilityId": "c6fbfdceafa533b7", "scanner": "scanner-primary", "fingerprint": "20d3abe5f64d5720", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2df6380a60f6793", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/benchmarks/export (apps/api/src/__tests__/benchmarking.test.ts:166)"}, "properties": {"repobilityId": "f8beff5c4d700b3e", "scanner": "scanner-primary", "fingerprint": "c2df6380a60f6793", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-feb5416d01a13839", "level": "error", "message": {"text": "Dangling fetch: GET /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:188)"}, "properties": {"repobilityId": "ec72e010a85dc339", "scanner": "scanner-primary", "fingerprint": "feb5416d01a13839", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e8bbbe625c110922", "level": "error", "message": {"text": "Dangling fetch: GET /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:196)"}, "properties": {"repobilityId": "89c4dc373d46d80e", "scanner": "scanner-primary", "fingerprint": "e8bbbe625c110922", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-209b2c1579fb3b3d", "level": "error", "message": {"text": "Dangling fetch: POST /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:208)"}, "properties": {"repobilityId": "7f3e4bcbb411eb60", "scanner": "scanner-primary", "fingerprint": "209b2c1579fb3b3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b04efc5eb52aa34", "level": "error", "message": {"text": "Dangling fetch: POST /benchmarks/opt-in (apps/api/src/__tests__/benchmarking.test.ts:221)"}, "properties": {"repobilityId": "1290f59a31934a95", "scanner": "scanner-primary", "fingerprint": "7b04efc5eb52aa34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa731e7ad873bf63", "level": "error", "message": {"text": "Dangling fetch: POST /benchmarks/opt-out (apps/api/src/__tests__/benchmarking.test.ts:239)"}, "properties": {"repobilityId": "6e7e0fbd14c670bb", "scanner": "scanner-primary", "fingerprint": "aa731e7ad873bf63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-67b8c82f2977df95", "level": "error", "message": {"text": "Dangling fetch: GET /benchmarks/peers (apps/api/src/__tests__/benchmarking.test.ts:256)"}, "properties": {"repobilityId": "565d3e3bfc8c1c54", "scanner": "scanner-primary", "fingerprint": "67b8c82f2977df95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-716610c71d9e7141", "level": "error", "message": {"text": "Dangling fetch: GET /benchmarks/peers (apps/api/src/__tests__/benchmarking.test.ts:270)"}, "properties": {"repobilityId": "7952a0b912a4b7ac", "scanner": "scanner-primary", "fingerprint": "716610c71d9e7141", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d1d048bc7c9e0160", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema (apps/api/src/__tests__/schema-discovery.test.ts:52)"}, "properties": {"repobilityId": "afcb8b727a80c517", "scanner": "scanner-primary", "fingerprint": "d1d048bc7c9e0160", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d1294b74f2354b53", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${CONNECTOR_ID}/discover-schema (apps/api/src/__tests__/schema-discovery.test.ts:58)"}, "properties": {"repobilityId": "0811d5589201673e", "scanner": "scanner-primary", "fingerprint": "d1294b74f2354b53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18856661f39e1267", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions (apps/api/src/__tests__/schema-discovery.test.ts:76)"}, "properties": {"repobilityId": "21694cacfa73aee4", "scanner": "scanner-primary", "fingerprint": "18856661f39e1267", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68f837c8f6c5b0ca", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-suggestions (apps/api/src/__tests__/schema-discovery.test.ts:84)"}, "properties": {"repobilityId": "81f43efefe7fa010", "scanner": "scanner-primary", "fingerprint": "68f837c8f6c5b0ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20c26c2e5bd56801", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:102)"}, "properties": {"repobilityId": "ec01557a7002d5f4", "scanner": "scanner-primary", "fingerprint": "20c26c2e5bd56801", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f3d83eeb17dc2573", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/r-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:113)"}, "properties": {"repobilityId": "3e156cfa4ccb297d", "scanner": "scanner-primary", "fingerprint": "f3d83eeb17dc2573", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-117690cddf443e55", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:123)"}, "properties": {"repobilityId": "7a8e7219d0720f07", "scanner": "scanner-primary", "fingerprint": "117690cddf443e55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f06e35f822f6ecd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/suggestions/s-1/confirm (apps/api/src/__tests__/schema-discovery.test.ts:133)"}, "properties": {"repobilityId": "ecc49454eb6d0bdd", "scanner": "scanner-primary", "fingerprint": "5f06e35f822f6ecd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a21b5e4d27333385", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-report (apps/api/src/__tests__/schema-discovery.test.ts:162)"}, "properties": {"repobilityId": "fc548a7ff26e9e6f", "scanner": "scanner-primary", "fingerprint": "a21b5e4d27333385", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-15c4df049ad72547", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${CONNECTOR_ID}/schema-report (apps/api/src/__tests__/schema-discovery.test.ts:170)"}, "properties": {"repobilityId": "e0f926784ae0a581", "scanner": "scanner-primary", "fingerprint": "15c4df049ad72547", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-30008393484b2281", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:55)"}, "properties": {"repobilityId": "240a2cce29aa9198", "scanner": "scanner-primary", "fingerprint": "30008393484b2281", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ace51257b075b0e2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:68)"}, "properties": {"repobilityId": "5ed0db0d06b73444", "scanner": "scanner-primary", "fingerprint": "ace51257b075b0e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3bb8351a1670a81f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:79)"}, "properties": {"repobilityId": "2a02ba55f77492f0", "scanner": "scanner-primary", "fingerprint": "3bb8351a1670a81f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-40963a573c836567", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/api/src/__tests__/compliance-audit.test.ts:99)"}, "properties": {"repobilityId": "6cbf6257755ce660", "scanner": "scanner-primary", "fingerprint": "40963a573c836567", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8efd07854860a63", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/audit-exports (apps/api/src/__tests__/compliance-audit.test.ts:113)"}, "properties": {"repobilityId": "850d8a191b859bfb", "scanner": "scanner-primary", "fingerprint": "a8efd07854860a63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f4f782c301aec53", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/audit-exports?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:122)"}, "properties": {"repobilityId": "47fdc9d23bcd7148", "scanner": "scanner-primary", "fingerprint": "5f4f782c301aec53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-826ea1ffb9319c67", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/anomalies (apps/api/src/__tests__/compliance-audit.test.ts:132)"}, "properties": {"repobilityId": "c257d4ef4cecbb00", "scanner": "scanner-primary", "fingerprint": "826ea1ffb9319c67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c421200a63443d57", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/anomalies?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:149)"}, "properties": {"repobilityId": "9f9ce3bceb287073", "scanner": "scanner-primary", "fingerprint": "c421200a63443d57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84b99bcc5dc7fb79", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/anomalies?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:159)"}, "properties": {"repobilityId": "2f8a867b8f730b22", "scanner": "scanner-primary", "fingerprint": "84b99bcc5dc7fb79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a4f91417d1c47588", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-abc123 (apps/api/src/__tests__/compliance-audit.test.ts:167)"}, "properties": {"repobilityId": "9569805dc350f209", "scanner": "scanner-primary", "fingerprint": "a4f91417d1c47588", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2103443f152a5efc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-xyz?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:174)"}, "properties": {"repobilityId": "205f2b3e56cd2cc8", "scanner": "scanner-primary", "fingerprint": "2103443f152a5efc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f93f4ecd4f7672d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/verify-export/exp-abc123?workspaceId=ws-1 (apps/api/src/__tests__/compliance-audit.test.ts:181)"}, "properties": {"repobilityId": "6b6d970677c0a519", "scanner": "scanner-primary", "fingerprint": "1f93f4ecd4f7672d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c221de3aa6bb24f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query (apps/api/src/__tests__/graph.test.ts:55)"}, "properties": {"repobilityId": "fc382d0b9dfe4a5e", "scanner": "scanner-primary", "fingerprint": "9c221de3aa6bb24f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-14c7f0914c03aace", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:62)"}, "properties": {"repobilityId": "337eb038f7eb2bb2", "scanner": "scanner-primary", "fingerprint": "14c7f0914c03aace", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9d5053dfa802422d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:72)"}, "properties": {"repobilityId": "6d10f650d9a28952", "scanner": "scanner-primary", "fingerprint": "9d5053dfa802422d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-797340fe4246c83b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:82)"}, "properties": {"repobilityId": "42f5ac61681d4bea", "scanner": "scanner-primary", "fingerprint": "797340fe4246c83b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9d5c8d860d25daf4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:94)"}, "properties": {"repobilityId": "5031001d815612b2", "scanner": "scanner-primary", "fingerprint": "9d5c8d860d25daf4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c00a70d0dc7ed2be", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&depth=0 (apps/api/src/__tests__/graph.test.ts:102)"}, "properties": {"repobilityId": "06a177159149f651", "scanner": "scanner-primary", "fingerprint": "c00a70d0dc7ed2be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0bd7d45ec3d830ed", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&depth=6 (apps/api/src/__tests__/graph.test.ts:107)"}, "properties": {"repobilityId": "e11d164ef574f8e4", "scanner": "scanner-primary", "fingerprint": "0bd7d45ec3d830ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e5726c0d4b098291", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&limit=501 (apps/api/src/__tests__/graph.test.ts:112)"}, "properties": {"repobilityId": "455eaed98473a17d", "scanner": "scanner-primary", "fingerprint": "e5726c0d4b098291", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2eabacd8dffbf308", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1 (apps/api/src/__tests__/graph.test.ts:119)"}, "properties": {"repobilityId": "a20887f08e380acc", "scanner": "scanner-primary", "fingerprint": "2eabacd8dffbf308", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f6db4eb8e8a7bb8e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/query?workspaceId=ws1&entityId=root (apps/api/src/__tests__/graph.test.ts:128)"}, "properties": {"repobilityId": "488433a383f0f533", "scanner": "scanner-primary", "fingerprint": "f6db4eb8e8a7bb8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-114f11734eaea811", "level": "error", "message": {"text": "Dangling fetch: GET /quality2/score?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:27)"}, "properties": {"repobilityId": "aaf7384cc861391c", "scanner": "scanner-primary", "fingerprint": "114f11734eaea811", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0dfdb629dbc96dcd", "level": "error", "message": {"text": "Dangling fetch: GET /quality2/score?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:35)"}, "properties": {"repobilityId": "6679095d60477e28", "scanner": "scanner-primary", "fingerprint": "0dfdb629dbc96dcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4dcd038421a678d", "level": "error", "message": {"text": "Dangling fetch: GET /quality2/by-type?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:47)"}, "properties": {"repobilityId": "56fea11d16cee097", "scanner": "scanner-primary", "fingerprint": "c4dcd038421a678d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3ebda2278b25825", "level": "error", "message": {"text": "Dangling fetch: GET /quality2/by-type?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:61)"}, "properties": {"repobilityId": "4e3b24092ec5d65b", "scanner": "scanner-primary", "fingerprint": "b3ebda2278b25825", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-23b79337adcd1558", "level": "error", "message": {"text": "Dangling fetch: GET /quality2/issues?workspaceId=ws-1 (apps/api/src/__tests__/data-quality-engine.test.ts:74)"}, "properties": {"repobilityId": "bbdb7b990e7329e0", "scanner": "scanner-primary", "fingerprint": "23b79337adcd1558", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb32e3902bc0f4c0", "level": "error", "message": {"text": "Dangling fetch: GET /quality2/issues?workspaceId=ws-1&severity=high (apps/api/src/__tests__/data-quality-engine.test.ts:87)"}, "properties": {"repobilityId": "50c3be6aeb1f6a8e", "scanner": "scanner-primary", "fingerprint": "eb32e3902bc0f4c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-396e146c5463e59b", "level": "error", "message": {"text": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:100)"}, "properties": {"repobilityId": "ecc4af603913a44c", "scanner": "scanner-primary", "fingerprint": "396e146c5463e59b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97681e9eeedc6684", "level": "error", "message": {"text": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:118)"}, "properties": {"repobilityId": "f4fca4319a5cb28e", "scanner": "scanner-primary", "fingerprint": "97681e9eeedc6684", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e4795c42fee89a19", "level": "error", "message": {"text": "Dangling fetch: POST /quality2/issues/i-1/apply-remediation (apps/api/src/__tests__/data-quality-engine.test.ts:131)"}, "properties": {"repobilityId": "3d525021caba2875", "scanner": "scanner-primary", "fingerprint": "e4795c42fee89a19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9a8e6d0cd05ef93", "level": "error", "message": {"text": "Dangling fetch: POST /mcp-responses/r-unknown/search (apps/api/src/__tests__/context-search.test.ts:44)"}, "properties": {"repobilityId": "d0d03b4449fab89e", "scanner": "scanner-primary", "fingerprint": "c9a8e6d0cd05ef93", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c67209f544e2647", "level": "error", "message": {"text": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:55)"}, "properties": {"repobilityId": "4c6995ee06ea9ef1", "scanner": "scanner-primary", "fingerprint": "8c67209f544e2647", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5152a7ab24cd400f", "level": "error", "message": {"text": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:70)"}, "properties": {"repobilityId": "bc98c4476ef00b02", "scanner": "scanner-primary", "fingerprint": "5152a7ab24cd400f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d32707bad2f9f87", "level": "error", "message": {"text": "Dangling fetch: POST /mcp-responses/r-1/search (apps/api/src/__tests__/context-search.test.ts:80)"}, "properties": {"repobilityId": "b64e46642776642d", "scanner": "scanner-primary", "fingerprint": "6d32707bad2f9f87", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f7cfe7412bdfc08", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/index (apps/api/src/__tests__/index-composition.test.ts:55)"}, "properties": {"repobilityId": "19b245f0af511d6e", "scanner": "scanner-primary", "fingerprint": "5f7cfe7412bdfc08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-099bfd013d1935df", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/index?workspaceId=ws-1 (apps/api/src/__tests__/index-composition.test.ts:73)"}, "properties": {"repobilityId": "491d00371fb6fc7a", "scanner": "scanner-primary", "fingerprint": "099bfd013d1935df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eba3c4d017a71beb", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/index?workspaceId=ws-1 (apps/api/src/__tests__/index-composition.test.ts:91)"}, "properties": {"repobilityId": "429ed961e5770dcd", "scanner": "scanner-primary", "fingerprint": "eba3c4d017a71beb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d666f670813a1705", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/index/snapshots (apps/api/src/__tests__/index-composition.test.ts:99)"}, "properties": {"repobilityId": "4643e163dd99d469", "scanner": "scanner-primary", "fingerprint": "d666f670813a1705", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49152e90af9cf6ae", "level": "error", "message": {"text": "Dangling fetch: GET /analytics/index/snapshots?workspaceId=ws-1&days=7 (apps/api/src/__tests__/index-composition.test.ts:116)"}, "properties": {"repobilityId": "ecf44338f342218f", "scanner": "scanner-primary", "fingerprint": "49152e90af9cf6ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e4d8b5314e68f000", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/inst-1?days=7 (apps/api/src/__tests__/admin-performance.test.ts:64)"}, "properties": {"repobilityId": "a1e43e7d85890bd1", "scanner": "scanner-primary", "fingerprint": "e4d8b5314e68f000", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95f0c7950251148d", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/inst-2 (apps/api/src/__tests__/admin-performance.test.ts:77)"}, "properties": {"repobilityId": "18418029389cb9bc", "scanner": "scanner-primary", "fingerprint": "95f0c7950251148d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d8c1573b56cc5131", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/inst-1?days=365 (apps/api/src/__tests__/admin-performance.test.ts:88)"}, "properties": {"repobilityId": "ace3dba842711f9e", "scanner": "scanner-primary", "fingerprint": "d8c1573b56cc5131", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd32f1d54b5fb237", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/inst-1 (apps/api/src/__tests__/admin-performance.test.ts:99)"}, "properties": {"repobilityId": "15459599810321f0", "scanner": "scanner-primary", "fingerprint": "fd32f1d54b5fb237", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12b848ecac8e166b", "level": "error", "message": {"text": "Dangling fetch: POST /recommendations/enable_semantic_cache/apply (apps/api/src/__tests__/cost-analytics.test.ts:95)"}, "properties": {"repobilityId": "132671c115327278", "scanner": "scanner-primary", "fingerprint": "12b848ecac8e166b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a1ccd16b5e618c5", "level": "error", "message": {"text": "Dangling fetch: POST /recommendations/enable_semantic_cache/apply (apps/api/src/__tests__/cost-analytics.test.ts:109)"}, "properties": {"repobilityId": "26c94a279da471f0", "scanner": "scanner-primary", "fingerprint": "0a1ccd16b5e618c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-059a38afd3cf0120", "level": "error", "message": {"text": "Dangling fetch: PUT /links/link-1 (apps/api/src/__tests__/entity-linking.test.ts:115)"}, "properties": {"repobilityId": "de67ab7b4bd3c527", "scanner": "scanner-primary", "fingerprint": "059a38afd3cf0120", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c230fc6fa903756", "level": "error", "message": {"text": "Dangling fetch: PUT /links/bad (apps/api/src/__tests__/entity-linking.test.ts:125)"}, "properties": {"repobilityId": "7f4149c32e56a210", "scanner": "scanner-primary", "fingerprint": "8c230fc6fa903756", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d5a4d9953d88ad9c", "level": "error", "message": {"text": "Dangling fetch: DELETE /merges/m-1 (apps/api/src/__tests__/entity-linking.test.ts:170)"}, "properties": {"repobilityId": "419c39b5c3d35586", "scanner": "scanner-primary", "fingerprint": "d5a4d9953d88ad9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b94a46b7960d769f", "level": "error", "message": {"text": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:185)"}, "properties": {"repobilityId": "dc8dbd036bd52ed1", "scanner": "scanner-primary", "fingerprint": "b94a46b7960d769f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d2e2e3f85df4787", "level": "error", "message": {"text": "Dangling fetch: DELETE /connector/empty-conn (apps/api/src/__tests__/document-indexing.test.ts:193)"}, "properties": {"repobilityId": "bf898225fda2b615", "scanner": "scanner-primary", "fingerprint": "2d2e2e3f85df4787", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a83f35cfd943d89", "level": "error", "message": {"text": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:200)"}, "properties": {"repobilityId": "243a632bd9f7f874", "scanner": "scanner-primary", "fingerprint": "3a83f35cfd943d89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e83b8365f8f2d879", "level": "error", "message": {"text": "Dangling fetch: DELETE /connector/gdrive-1 (apps/api/src/__tests__/document-indexing.test.ts:206)"}, "properties": {"repobilityId": "e346f8d6cc1e9c1f", "scanner": "scanner-primary", "fingerprint": "e83b8365f8f2d879", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-60d17f251e660a05", "level": "error", "message": {"text": "Dangling fetch: DELETE /connector/my-connector (apps/api/src/__tests__/document-indexing.test.ts:212)"}, "properties": {"repobilityId": "6d90441f9d74aac9", "scanner": "scanner-primary", "fingerprint": "60d17f251e660a05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d08ed3545d6ffeb8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:76)"}, "properties": {"repobilityId": "94bdbc4b46067033", "scanner": "scanner-primary", "fingerprint": "d08ed3545d6ffeb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff00f528e67c5a65", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/salesforce/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:86)"}, "properties": {"repobilityId": "3f07c6596ff522ac", "scanner": "scanner-primary", "fingerprint": "ff00f528e67c5a65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a592c0c9605530d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/slack/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:96)"}, "properties": {"repobilityId": "353c0d58c5654b24", "scanner": "scanner-primary", "fingerprint": "4a592c0c9605530d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9f73e1cb2d6777e5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:105)"}, "properties": {"repobilityId": "82d2fa6310224510", "scanner": "scanner-primary", "fingerprint": "9f73e1cb2d6777e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e717409bced90e7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:113)"}, "properties": {"repobilityId": "ccb6db8117b0f1e6", "scanner": "scanner-primary", "fingerprint": "1e717409bced90e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9f9966fcd51d147", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:120)"}, "properties": {"repobilityId": "157e262221901f05", "scanner": "scanner-primary", "fingerprint": "d9f9966fcd51d147", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a3f24250d5718816", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/hubspot/circuit-status (apps/api/src/__tests__/circuit-breaker-admin.test.ts:128)"}, "properties": {"repobilityId": "a3382cf820460e6c", "scanner": "scanner-primary", "fingerprint": "a3f24250d5718816", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-adae249854c0e371", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:139)"}, "properties": {"repobilityId": "202676b280ebfb50", "scanner": "scanner-primary", "fingerprint": "adae249854c0e371", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9ff864df2bfe64f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/connectors/salesforce/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:150)"}, "properties": {"repobilityId": "2c4f448f385e4473", "scanner": "scanner-primary", "fingerprint": "f9ff864df2bfe64f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bd36a7179cb9e342", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:160)"}, "properties": {"repobilityId": "08b67febd9ccb72a", "scanner": "scanner-primary", "fingerprint": "bd36a7179cb9e342", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-de6616007b9ca474", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/connectors/my-connector/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:169)"}, "properties": {"repobilityId": "1b019084b2e65c2a", "scanner": "scanner-primary", "fingerprint": "de6616007b9ca474", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2e4787ce50ca06c4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/connectors/hubspot/circuit-reset (apps/api/src/__tests__/circuit-breaker-admin.test.ts:178)"}, "properties": {"repobilityId": "8c5f16c474e6585b", "scanner": "scanner-primary", "fingerprint": "2e4787ce50ca06c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ca9f11529da3c8f4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:188)"}, "properties": {"repobilityId": "e39e88adb32cfdaa", "scanner": "scanner-primary", "fingerprint": "ca9f11529da3c8f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4543e6cf0ffd8f7c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:198)"}, "properties": {"repobilityId": "d67782cf52a20f27", "scanner": "scanner-primary", "fingerprint": "4543e6cf0ffd8f7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d7e32d96a2a5d2a3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:208)"}, "properties": {"repobilityId": "75c41b72e2d22500", "scanner": "scanner-primary", "fingerprint": "d7e32d96a2a5d2a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-347c45e349086ef9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:216)"}, "properties": {"repobilityId": "3114d9486bdf1ee2", "scanner": "scanner-primary", "fingerprint": "347c45e349086ef9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a4ea16f3a96473f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:222)"}, "properties": {"repobilityId": "77b5ff9a7a28b0da", "scanner": "scanner-primary", "fingerprint": "7a4ea16f3a96473f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d203dda421001504", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:231)"}, "properties": {"repobilityId": "568a818dd16f85c3", "scanner": "scanner-primary", "fingerprint": "d203dda421001504", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9f0e468023aa764a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:242)"}, "properties": {"repobilityId": "b8837cfa18131702", "scanner": "scanner-primary", "fingerprint": "9f0e468023aa764a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af692bfd2074f70b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/circuit-summary (apps/api/src/__tests__/circuit-breaker-admin.test.ts:251)"}, "properties": {"repobilityId": "4e30a48d446da2ba", "scanner": "scanner-primary", "fingerprint": "af692bfd2074f70b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63c07dc3c4febfeb", "level": "error", "message": {"text": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:125)"}, "properties": {"repobilityId": "c971c78a2f6f8b47", "scanner": "scanner-primary", "fingerprint": "63c07dc3c4febfeb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d074f65d4b779ee", "level": "error", "message": {"text": "Dangling fetch: GET /admin/webhooks/wh-new/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:133)"}, "properties": {"repobilityId": "5e708e5be4b4f2bd", "scanner": "scanner-primary", "fingerprint": "2d074f65d4b779ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d39bc6617e74817", "level": "error", "message": {"text": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:141)"}, "properties": {"repobilityId": "0b9f6616549bbfbc", "scanner": "scanner-primary", "fingerprint": "0d39bc6617e74817", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aec2d3f6b6ffa0f5", "level": "error", "message": {"text": "Dangling fetch: GET /admin/webhooks/my-hook/deliveries (apps/api/src/__tests__/webhook-admin.test.ts:147)"}, "properties": {"repobilityId": "8e600e047216dc33", "scanner": "scanner-primary", "fingerprint": "aec2d3f6b6ffa0f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9d767446d28243d7", "level": "error", "message": {"text": "Dangling fetch: GET /admin/webhooks/wh-1/deliveries?limit=10 (apps/api/src/__tests__/webhook-admin.test.ts:153)"}, "properties": {"repobilityId": "7c820495fec4cfdb", "scanner": "scanner-primary", "fingerprint": "9d767446d28243d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-021310558c237999", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:161)"}, "properties": {"repobilityId": "98a729d7a2c6b226", "scanner": "scanner-primary", "fingerprint": "021310558c237999", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-29ee68bfc6b81abf", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:171)"}, "properties": {"repobilityId": "1b25567e1481ba63", "scanner": "scanner-primary", "fingerprint": "29ee68bfc6b81abf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03b18df568cf054a", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/bad/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:182)"}, "properties": {"repobilityId": "df762782f5ca73ce", "scanner": "scanner-primary", "fingerprint": "03b18df568cf054a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1516dc4d5b1f9e14", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:192)"}, "properties": {"repobilityId": "9f927458d4231fe6", "scanner": "scanner-primary", "fingerprint": "1516dc4d5b1f9e14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7ea9c28699d5700", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/test-delivery (apps/api/src/__tests__/webhook-admin.test.ts:202)"}, "properties": {"repobilityId": "99f37a08c50a72f3", "scanner": "scanner-primary", "fingerprint": "c7ea9c28699d5700", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16924ba68391cdab", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-1 (apps/api/src/__tests__/webhook-admin.test.ts:215)"}, "properties": {"repobilityId": "6c8c899fc6662d5f", "scanner": "scanner-primary", "fingerprint": "16924ba68391cdab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2494b31c995160c8", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/bad (apps/api/src/__tests__/webhook-admin.test.ts:223)"}, "properties": {"repobilityId": "4112db1ddf3949be", "scanner": "scanner-primary", "fingerprint": "2494b31c995160c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a55e826b12901f7b", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-1 (apps/api/src/__tests__/webhook-admin.test.ts:229)"}, "properties": {"repobilityId": "390b20f97c9250f9", "scanner": "scanner-primary", "fingerprint": "a55e826b12901f7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-280b1915111b985d", "level": "error", "message": {"text": "Dangling fetch: POST /admin/webhooks/wh-1/retry/d-test (apps/api/src/__tests__/webhook-admin.test.ts:235)"}, "properties": {"repobilityId": "2603219421e7f1ca", "scanner": "scanner-primary", "fingerprint": "280b1915111b985d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34db06689c18507c", "level": "error", "message": {"text": "Dangling fetch: POST /recommendations/00000000-0000-0000-0000-000000000000/apply-test (apps/api/src/__tests__/auto-tuning.test.ts:102)"}, "properties": {"repobilityId": "4913e529b900746c", "scanner": "scanner-primary", "fingerprint": "34db06689c18507c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0915a81593fcbab1", "level": "error", "message": {"text": "Dangling fetch: POST /recommendations/not-a-uuid/apply-test (apps/api/src/__tests__/auto-tuning.test.ts:111)"}, "properties": {"repobilityId": "9cb53f245daeed4f", "scanner": "scanner-primary", "fingerprint": "0915a81593fcbab1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a9ffba143912e79", "level": "error", "message": {"text": "Dangling fetch: POST /recommendations/rec-1/feedback (apps/api/src/__tests__/auto-tuning.test.ts:125)"}, "properties": {"repobilityId": "523462c9117cf3c8", "scanner": "scanner-primary", "fingerprint": "0a9ffba143912e79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-06997fba10ffc491", "level": "error", "message": {"text": "Dangling fetch: POST /recommendations/rec-1/feedback (apps/api/src/__tests__/auto-tuning.test.ts:135)"}, "properties": {"repobilityId": "9bb661fba6898db2", "scanner": "scanner-primary", "fingerprint": "06997fba10ffc491", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-85ca89c24c5c7347", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-config.test.ts:40)"}, "properties": {"repobilityId": "f42ae86b500615cd", "scanner": "scanner-primary", "fingerprint": "85ca89c24c5c7347", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25bc1cc2ac165647", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-config.test.ts:48)"}, "properties": {"repobilityId": "726c76be4d6073f3", "scanner": "scanner-primary", "fingerprint": "25bc1cc2ac165647", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd5596d4f05f72a8", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/sources/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:56)"}, "properties": {"repobilityId": "6bfc5d7e2e55ce9e", "scanner": "scanner-primary", "fingerprint": "fd5596d4f05f72a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eba411694794b282", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/sources/nonexistent (apps/api/src/__tests__/enrichment-config.test.ts:62)"}, "properties": {"repobilityId": "4b778a724a32265e", "scanner": "scanner-primary", "fingerprint": "eba411694794b282", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7dd2fd10f670e925", "level": "error", "message": {"text": "Dangling fetch: POST /enrichments/configure/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:70)"}, "properties": {"repobilityId": "bbc30ec90498ac8b", "scanner": "scanner-primary", "fingerprint": "7dd2fd10f670e925", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd9fb13c00209254", "level": "error", "message": {"text": "Dangling fetch: POST /enrichments/configure/src-1 (apps/api/src/__tests__/enrichment-config.test.ts:79)"}, "properties": {"repobilityId": "96ea572416f755ef", "scanner": "scanner-primary", "fingerprint": "dd9fb13c00209254", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e6be02bf618e21d", "level": "error", "message": {"text": "Dangling fetch: POST /demo/bootstrap (apps/api/src/__tests__/demo-bootstrap.test.ts:59)"}, "properties": {"repobilityId": "0f4a774e26bd7c5e", "scanner": "scanner-primary", "fingerprint": "5e6be02bf618e21d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03b821ca653edd83", "level": "error", "message": {"text": "Dangling fetch: POST /snapshots/snap-1/restore (apps/api/src/__tests__/snapshots.test.ts:141)"}, "properties": {"repobilityId": "50cef30a81fda015", "scanner": "scanner-primary", "fingerprint": "03b821ca653edd83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7615fe7ca7da3f87", "level": "error", "message": {"text": "Dangling fetch: POST /snapshots/nonexistent/restore (apps/api/src/__tests__/snapshots.test.ts:149)"}, "properties": {"repobilityId": "69385884cd9883c3", "scanner": "scanner-primary", "fingerprint": "7615fe7ca7da3f87", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed70b5d87db8d4f2", "level": "error", "message": {"text": "Dangling fetch: POST /snapshots/snap-creating/restore (apps/api/src/__tests__/snapshots.test.ts:157)"}, "properties": {"repobilityId": "9de0e1e2277479c7", "scanner": "scanner-primary", "fingerprint": "ed70b5d87db8d4f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2002e218aed2de28", "level": "error", "message": {"text": "Dangling fetch: POST /snapshots/snap-1/restore (apps/api/src/__tests__/snapshots.test.ts:164)"}, "properties": {"repobilityId": "3c0a6a770837b545", "scanner": "scanner-primary", "fingerprint": "2002e218aed2de28", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1716a9545e10857c", "level": "error", "message": {"text": "Dangling fetch: GET /graphql/schema (apps/api/src/__tests__/graphql.test.ts:41)"}, "properties": {"repobilityId": "dab610fd022da4dc", "scanner": "scanner-primary", "fingerprint": "1716a9545e10857c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-affe265bd24ec81b", "level": "error", "message": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:51)"}, "properties": {"repobilityId": "fe9e4b4bf0cd447d", "scanner": "scanner-primary", "fingerprint": "affe265bd24ec81b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f652e8077fcbf525", "level": "error", "message": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:62)"}, "properties": {"repobilityId": "1c2d1d444f7b660a", "scanner": "scanner-primary", "fingerprint": "f652e8077fcbf525", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b47af6721a998088", "level": "error", "message": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:74)"}, "properties": {"repobilityId": "4d31d9f34d36463a", "scanner": "scanner-primary", "fingerprint": "b47af6721a998088", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ccb9bc753ab06b7c", "level": "error", "message": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:88)"}, "properties": {"repobilityId": "05fd4911120374e7", "scanner": "scanner-primary", "fingerprint": "ccb9bc753ab06b7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8299d4e980fce5d", "level": "error", "message": {"text": "Dangling fetch: POST /graphql (apps/api/src/__tests__/graphql.test.ts:102)"}, "properties": {"repobilityId": "e2c0f9f53ef4cf67", "scanner": "scanner-primary", "fingerprint": "a8299d4e980fce5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-82e22c8ea1c1bc32", "level": "error", "message": {"text": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:123)"}, "properties": {"repobilityId": "d2e00d363aa5e50d", "scanner": "scanner-primary", "fingerprint": "82e22c8ea1c1bc32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4284a47408dee1d6", "level": "error", "message": {"text": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:134)"}, "properties": {"repobilityId": "5396e773e18cbc18", "scanner": "scanner-primary", "fingerprint": "4284a47408dee1d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5354a709232394f6", "level": "error", "message": {"text": "Dangling fetch: POST /graphql/batch (apps/api/src/__tests__/graphql.test.ts:147)"}, "properties": {"repobilityId": "5b9ccc5b5d2f51c0", "scanner": "scanner-primary", "fingerprint": "5354a709232394f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6ad32a65879944a", "level": "error", "message": {"text": "Dangling fetch: POST /graphql/hash (apps/api/src/__tests__/graphql.test.ts:162)"}, "properties": {"repobilityId": "b41f12bed38cf5ef", "scanner": "scanner-primary", "fingerprint": "e6ad32a65879944a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7c7921d31de9f3e4", "level": "error", "message": {"text": "Dangling fetch: POST /graphql/hash (apps/api/src/__tests__/graphql.test.ts:174)"}, "properties": {"repobilityId": "e4e72907775cf7d7", "scanner": "scanner-primary", "fingerprint": "7c7921d31de9f3e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3be02be495f4d25e", "level": "error", "message": {"text": "Dangling fetch: GET /graphql/audit (apps/api/src/__tests__/graphql.test.ts:186)"}, "properties": {"repobilityId": "69e3a8497dcbc784", "scanner": "scanner-primary", "fingerprint": "3be02be495f4d25e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c16f3b8dab9714d", "level": "error", "message": {"text": "Dangling fetch: GET /graphql/audit?workspaceId=ws-1 (apps/api/src/__tests__/graphql.test.ts:193)"}, "properties": {"repobilityId": "3875cb4aa6de806e", "scanner": "scanner-primary", "fingerprint": "3c16f3b8dab9714d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-103cee1c43caf4fd", "level": "error", "message": {"text": "Dangling fetch: POST /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:74)"}, "properties": {"repobilityId": "8b7a9d2144439036", "scanner": "scanner-primary", "fingerprint": "103cee1c43caf4fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f402edce0bab931e", "level": "error", "message": {"text": "Dangling fetch: POST /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:86)"}, "properties": {"repobilityId": "369f8609aa2bdb59", "scanner": "scanner-primary", "fingerprint": "f402edce0bab931e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e65e030544611443", "level": "error", "message": {"text": "Dangling fetch: GET /context/snapshots (apps/api/src/__tests__/context-versioning.test.ts:97)"}, "properties": {"repobilityId": "f07a30c572458254", "scanner": "scanner-primary", "fingerprint": "e65e030544611443", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2301b07ad735f17e", "level": "error", "message": {"text": "Dangling fetch: GET /context/snapshots?limit=10&cursor=snap-1 (apps/api/src/__tests__/context-versioning.test.ts:107)"}, "properties": {"repobilityId": "56f0a946b08f3936", "scanner": "scanner-primary", "fingerprint": "2301b07ad735f17e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-74e4ece44466c13c", "level": "error", "message": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:116)"}, "properties": {"repobilityId": "819c3e66bcce1594", "scanner": "scanner-primary", "fingerprint": "74e4ece44466c13c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb568e7e415896aa", "level": "error", "message": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:128)"}, "properties": {"repobilityId": "cd63b2b8d673b416", "scanner": "scanner-primary", "fingerprint": "eb568e7e415896aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-094b9661850438c5", "level": "error", "message": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:137)"}, "properties": {"repobilityId": "9bb782fc2ecdb709", "scanner": "scanner-primary", "fingerprint": "094b9661850438c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-143dff174207baed", "level": "error", "message": {"text": "Dangling fetch: POST /context/query-as-of (apps/api/src/__tests__/context-versioning.test.ts:146)"}, "properties": {"repobilityId": "c8b04fce0dedc496", "scanner": "scanner-primary", "fingerprint": "143dff174207baed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-794d1d536d5cc5ce", "level": "error", "message": {"text": "Dangling fetch: GET /context/versions/snap-1/diff?toVersion=snap-2 (apps/api/src/__tests__/context-versioning.test.ts:157)"}, "properties": {"repobilityId": "8e4027d3719e5f97", "scanner": "scanner-primary", "fingerprint": "794d1d536d5cc5ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f4e08fe6053db38", "level": "error", "message": {"text": "Dangling fetch: GET /context/versions/snap-1/diff (apps/api/src/__tests__/context-versioning.test.ts:166)"}, "properties": {"repobilityId": "a0f5ecaf7fd34433", "scanner": "scanner-primary", "fingerprint": "8f4e08fe6053db38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8cd1e4dc6191bceb", "level": "error", "message": {"text": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:175)"}, "properties": {"repobilityId": "1f197bcd9f7acefc", "scanner": "scanner-primary", "fingerprint": "8cd1e4dc6191bceb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-98242d9fd3f48876", "level": "error", "message": {"text": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:186)"}, "properties": {"repobilityId": "ad273794e80bb1e8", "scanner": "scanner-primary", "fingerprint": "98242d9fd3f48876", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8070b7ccc88da602", "level": "error", "message": {"text": "Dangling fetch: POST /context/rollback (apps/api/src/__tests__/context-versioning.test.ts:195)"}, "properties": {"repobilityId": "9e62b91053be15c0", "scanner": "scanner-primary", "fingerprint": "8070b7ccc88da602", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e79ed048610d9e3d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/prewarming-stats (apps/api/src/__tests__/cache-prewarming.test.ts:23)"}, "properties": {"repobilityId": "4e6adf85a53fa9cd", "scanner": "scanner-primary", "fingerprint": "e79ed048610d9e3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-965990d26015c175", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/prewarming-stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:38)"}, "properties": {"repobilityId": "6fec52699980f9c2", "scanner": "scanner-primary", "fingerprint": "965990d26015c175", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a3415c95ff9d78bc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/prewarming-stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:47)"}, "properties": {"repobilityId": "1d463644b353885b", "scanner": "scanner-primary", "fingerprint": "a3415c95ff9d78bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-306ee508145b8b0e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/patterns?workspaceId=ws-1 (apps/api/src/__tests__/cache-prewarming.test.ts:58)"}, "properties": {"repobilityId": "eb4fae660fd11f78", "scanner": "scanner-primary", "fingerprint": "306ee508145b8b0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-05a298b188425048", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/cache-prewarming.test.ts:68)"}, "properties": {"repobilityId": "764d905eee50a9f0", "scanner": "scanner-primary", "fingerprint": "05a298b188425048", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4bfc0a3729b5aa4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/cache-prewarming.test.ts:84)"}, "properties": {"repobilityId": "92b03c518922405f", "scanner": "scanner-primary", "fingerprint": "c4bfc0a3729b5aa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18ed21573109c277", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/predict (apps/api/src/__tests__/cache-prewarming.test.ts:98)"}, "properties": {"repobilityId": "78bfe453ff309bf6", "scanner": "scanner-primary", "fingerprint": "18ed21573109c277", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2461bd16228d839", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/predict (apps/api/src/__tests__/cache-prewarming.test.ts:115)"}, "properties": {"repobilityId": "8a948472d9f0ca7a", "scanner": "scanner-primary", "fingerprint": "f2461bd16228d839", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fba995899bbb3e2b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:50)"}, "properties": {"repobilityId": "aa22decfe0a5e3f0", "scanner": "scanner-primary", "fingerprint": "fba995899bbb3e2b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1897b1c6f20d5641", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:58)"}, "properties": {"repobilityId": "5f49c5b27c56b246", "scanner": "scanner-primary", "fingerprint": "1897b1c6f20d5641", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84ad7885f50b61af", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:74)"}, "properties": {"repobilityId": "c947caa9c7dc27c9", "scanner": "scanner-primary", "fingerprint": "84ad7885f50b61af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bceab0cbec220dca", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:89)"}, "properties": {"repobilityId": "50601b58bb43508a", "scanner": "scanner-primary", "fingerprint": "bceab0cbec220dca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-701463703b434f62", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/llm-providers (apps/api/src/__tests__/llm-providers.test.ts:98)"}, "properties": {"repobilityId": "ae1e8953e4899497", "scanner": "scanner-primary", "fingerprint": "701463703b434f62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c22e7f059c7fde2", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/llm-providers/cfg-1 (apps/api/src/__tests__/llm-providers.test.ts:118)"}, "properties": {"repobilityId": "48b096abeeda542c", "scanner": "scanner-primary", "fingerprint": "5c22e7f059c7fde2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e69ecaef72609e2a", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/llm-providers/cfg-x (apps/api/src/__tests__/llm-providers.test.ts:126)"}, "properties": {"repobilityId": "c82f37a8a5f12112", "scanner": "scanner-primary", "fingerprint": "e69ecaef72609e2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-160ad70072372ecf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/llm-providers/cfg-1/test (apps/api/src/__tests__/llm-providers.test.ts:142)"}, "properties": {"repobilityId": "a13d0d0059d9d3d3", "scanner": "scanner-primary", "fingerprint": "160ad70072372ecf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59dc12a7f239e697", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/llm-providers/cfg-1/test (apps/api/src/__tests__/llm-providers.test.ts:150)"}, "properties": {"repobilityId": "14d37a28215fcc81", "scanner": "scanner-primary", "fingerprint": "59dc12a7f239e697", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-770a02337571bb8c", "level": "error", "message": {"text": "Dangling fetch: GET /enrichment/quality/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:42)"}, "properties": {"repobilityId": "c6fb69c10ad0542b", "scanner": "scanner-primary", "fingerprint": "770a02337571bb8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d5e8e18cdb4fb75", "level": "error", "message": {"text": "Dangling fetch: GET /enrichment/quality/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:52)"}, "properties": {"repobilityId": "c98afe49874f6931", "scanner": "scanner-primary", "fingerprint": "6d5e8e18cdb4fb75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-014eac4134bc3bc0", "level": "error", "message": {"text": "Dangling fetch: GET /enrichment/gaps?connectorId=clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:61)"}, "properties": {"repobilityId": "c136aefd6186852c", "scanner": "scanner-primary", "fingerprint": "014eac4134bc3bc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-24f443153db1c5d9", "level": "error", "message": {"text": "Dangling fetch: GET /enrichment/gaps?entityType=contact&connectorId=clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:72)"}, "properties": {"repobilityId": "43b79d380d7c1c28", "scanner": "scanner-primary", "fingerprint": "24f443153db1c5d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b366a54c11c5d0fb", "level": "error", "message": {"text": "Dangling fetch: GET /enrichment/sources/clearbit/reliability (apps/api/src/__tests__/enrichment-quality.test.ts:87)"}, "properties": {"repobilityId": "20cf642617457b3d", "scanner": "scanner-primary", "fingerprint": "b366a54c11c5d0fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7570e6ecd2018f0", "level": "error", "message": {"text": "Dangling fetch: POST /enrichment/sources/feedback (apps/api/src/__tests__/enrichment-quality.test.ts:98)"}, "properties": {"repobilityId": "463394802fddc43b", "scanner": "scanner-primary", "fingerprint": "e7570e6ecd2018f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69cb343b0834216f", "level": "error", "message": {"text": "Dangling fetch: POST /enrichment/sources/feedback (apps/api/src/__tests__/enrichment-quality.test.ts:109)"}, "properties": {"repobilityId": "6055f3c6e1afc9ff", "scanner": "scanner-primary", "fingerprint": "69cb343b0834216f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9efbe2313a45f63d", "level": "error", "message": {"text": "Dangling fetch: GET /enrichment/roi/clearbit (apps/api/src/__tests__/enrichment-quality.test.ts:122)"}, "properties": {"repobilityId": "34392941eac94f94", "scanner": "scanner-primary", "fingerprint": "9efbe2313a45f63d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ae5a8cfcc9f583de", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/documents/search?q=strategy (apps/api/src/__tests__/documents.test.ts:47)"}, "properties": {"repobilityId": "2b24109434c2e6e3", "scanner": "scanner-primary", "fingerprint": "ae5a8cfcc9f583de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8f0c5b462e8bafe", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/documents/search (apps/api/src/__tests__/documents.test.ts:58)"}, "properties": {"repobilityId": "d70fcedc18ec2d51", "scanner": "scanner-primary", "fingerprint": "a8f0c5b462e8bafe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-005a6167c1d00fe9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/documents/search?q=test&limit=200 (apps/api/src/__tests__/documents.test.ts:66)"}, "properties": {"repobilityId": "5a8b3894c6cea0d4", "scanner": "scanner-primary", "fingerprint": "005a6167c1d00fe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3249f61cfcf49977", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/documents/search?q=test (apps/api/src/__tests__/documents.test.ts:83)"}, "properties": {"repobilityId": "ff80ef7ab486e104", "scanner": "scanner-primary", "fingerprint": "3249f61cfcf49977", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7685e12ef7419e0d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/documents/stats (apps/api/src/__tests__/documents.test.ts:95)"}, "properties": {"repobilityId": "2bf907d5169b610f", "scanner": "scanner-primary", "fingerprint": "7685e12ef7419e0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-86b4c2ae363eafd0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/documents/stats (apps/api/src/__tests__/documents.test.ts:115)"}, "properties": {"repobilityId": "dafad96ee8b45e69", "scanner": "scanner-primary", "fingerprint": "86b4c2ae363eafd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e70f87111eafe7e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:130)"}, "properties": {"repobilityId": "6126c35b19e24afe", "scanner": "scanner-primary", "fingerprint": "1e70f87111eafe7e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-747a767d4fc54147", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:142)"}, "properties": {"repobilityId": "2574cc5b7c904a3c", "scanner": "scanner-primary", "fingerprint": "747a767d4fc54147", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0c88dfcfabeada5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:151)"}, "properties": {"repobilityId": "9e9b5a394e85ed73", "scanner": "scanner-primary", "fingerprint": "a0c88dfcfabeada5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7ab25638d76aeb81", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/documents/import/bulk (apps/api/src/__tests__/documents.test.ts:172)"}, "properties": {"repobilityId": "78a9682e48f3c304", "scanner": "scanner-primary", "fingerprint": "7ab25638d76aeb81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f0e438a370796cd", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/documents/connector/notion-prod (apps/api/src/__tests__/documents.test.ts:187)"}, "properties": {"repobilityId": "2a845617af01ce34", "scanner": "scanner-primary", "fingerprint": "6f0e438a370796cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68653d121eb653f7", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/documents/connector/bad-conn (apps/api/src/__tests__/documents.test.ts:207)"}, "properties": {"repobilityId": "d5a0514970c092b3", "scanner": "scanner-primary", "fingerprint": "68653d121eb653f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e50ed949febcd6d4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:62)"}, "properties": {"repobilityId": "dd66ac042c3ede56", "scanner": "scanner-primary", "fingerprint": "e50ed949febcd6d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8615c0d540ae012e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:75)"}, "properties": {"repobilityId": "a9d2f64ea0620a30", "scanner": "scanner-primary", "fingerprint": "8615c0d540ae012e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-73dfa6b72c2eed59", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:85)"}, "properties": {"repobilityId": "d6f39dbfdc310c53", "scanner": "scanner-primary", "fingerprint": "73dfa6b72c2eed59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7fb7c83bf0dd0b4f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:97)"}, "properties": {"repobilityId": "92a27763100aebc1", "scanner": "scanner-primary", "fingerprint": "7fb7c83bf0dd0b4f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93c4664315ccb0b1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:107)"}, "properties": {"repobilityId": "e33cf69e62748158", "scanner": "scanner-primary", "fingerprint": "93c4664315ccb0b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f7ec05112ecc2c66", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/api/src/__tests__/query-cost-analysis.test.ts:130)"}, "properties": {"repobilityId": "aecbd11a5459cc52", "scanner": "scanner-primary", "fingerprint": "f7ec05112ecc2c66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ccbc63706d8293e5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/queries/cost-history (apps/api/src/__tests__/query-cost-analysis.test.ts:150)"}, "properties": {"repobilityId": "dcf8cb4161dc6822", "scanner": "scanner-primary", "fingerprint": "ccbc63706d8293e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a117e5b7e5323412", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/queries/cost-history?limit=10&cursor=2026-01-01T00:00:00Z (apps/api/src/__tests__/query-cost-analysis.test.ts:162)"}, "properties": {"repobilityId": "8c7cf811d89b93a6", "scanner": "scanner-primary", "fingerprint": "a117e5b7e5323412", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eaded8fd465144d9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/queries/cost-history?limit=9999 (apps/api/src/__tests__/query-cost-analysis.test.ts:169)"}, "properties": {"repobilityId": "a9f2b4dbec372a06", "scanner": "scanner-primary", "fingerprint": "eaded8fd465144d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01fb7b7603d86446", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/queries/cost-history (apps/api/src/__tests__/query-cost-analysis.test.ts:190)"}, "properties": {"repobilityId": "963eda76dace6018", "scanner": "scanner-primary", "fingerprint": "01fb7b7603d86446", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17307a6c3dc648e8", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:13)"}, "properties": {"repobilityId": "7e9a0be3d1db50cb", "scanner": "scanner-primary", "fingerprint": "17307a6c3dc648e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d8b52a3b461225cd", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:21)"}, "properties": {"repobilityId": "7b3c38688b5575a8", "scanner": "scanner-primary", "fingerprint": "d8b52a3b461225cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e94fc0f0da52ca7b", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=my-ws (apps/api/src/__tests__/mcp-resources.test.ts:30)"}, "properties": {"repobilityId": "56554fb1dc7bd435", "scanner": "scanner-primary", "fingerprint": "e94fc0f0da52ca7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38bf520bb01f57fd", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources (apps/api/src/__tests__/mcp-resources.test.ts:37)"}, "properties": {"repobilityId": "8cf61d4c02642144", "scanner": "scanner-primary", "fingerprint": "38bf520bb01f57fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a33920b2057ff847", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources?workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:45)"}, "properties": {"repobilityId": "e5e860f854bca24e", "scanner": "scanner-primary", "fingerprint": "a33920b2057ff847", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f3884fa97cc8ea0", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:57)"}, "properties": {"repobilityId": "459abbf9244cc23e", "scanner": "scanner-primary", "fingerprint": "0f3884fa97cc8ea0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9ffca4179ef7beb", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:62)"}, "properties": {"repobilityId": "63fdb29e4c3dfebc", "scanner": "scanner-primary", "fingerprint": "f9ffca4179ef7beb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d269b26b8fa6ec2", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity&workspaceId=ws-1 (apps/api/src/__tests__/mcp-resources.test.ts:67)"}, "properties": {"repobilityId": "77fe435286c54a92", "scanner": "scanner-primary", "fingerprint": "2d269b26b8fa6ec2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bcf693f8c5e47135", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity&workspaceId=ws-1&entityId=hubspot:contact:1 (apps/api/src/__tests__/mcp-resources.test.ts:72)"}, "properties": {"repobilityId": "8910bcab949c500b", "scanner": "scanner-primary", "fingerprint": "bcf693f8c5e47135", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5fd682365f49c126", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?type=entity-graph&workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:79)"}, "properties": {"repobilityId": "83797cf0480b4814", "scanner": "scanner-primary", "fingerprint": "5fd682365f49c126", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a7cd8a5a2956dd37", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?type=document&workspaceId=ws-1&entityId=doc:1 (apps/api/src/__tests__/mcp-resources.test.ts:86)"}, "properties": {"repobilityId": "53e68d9ea459ea65", "scanner": "scanner-primary", "fingerprint": "a7cd8a5a2956dd37", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d1a42fa30a2f5ca", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/resources/uri?type=unknown&workspaceId=ws-1&entityId=e:1 (apps/api/src/__tests__/mcp-resources.test.ts:93)"}, "properties": {"repobilityId": "f717c28ea81d767a", "scanner": "scanner-primary", "fingerprint": "0d1a42fa30a2f5ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0c4568a49d2df38d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cost-attribution/attribute (apps/api/src/__tests__/cost-attribution.test.ts:36)"}, "properties": {"repobilityId": "96dfce41929a79d2", "scanner": "scanner-primary", "fingerprint": "0c4568a49d2df38d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5488ceb0f51f637b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cost-attribution/attribute (apps/api/src/__tests__/cost-attribution.test.ts:47)"}, "properties": {"repobilityId": "77c6faa62af297a3", "scanner": "scanner-primary", "fingerprint": "5488ceb0f51f637b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-47a2d2076999a192", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1 (apps/api/src/__tests__/cost-attribution.test.ts:58)"}, "properties": {"repobilityId": "69d84032ea54cd4d", "scanner": "scanner-primary", "fingerprint": "47a2d2076999a192", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b500c7ed773b3e1c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1/forecast?interval=week (apps/api/src/__tests__/cost-attribution.test.ts:67)"}, "properties": {"repobilityId": "ee97e9665b6b17d5", "scanner": "scanner-primary", "fingerprint": "b500c7ed773b3e1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1d0812ced608ab3c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cost-attribution/entities/e1/forecast?interval=year (apps/api/src/__tests__/cost-attribution.test.ts:74)"}, "properties": {"repobilityId": "3873237f07eab3ae", "scanner": "scanner-primary", "fingerprint": "1d0812ced608ab3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e16575328f818f8c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cost-attribution/connectors/hubspot?period=month (apps/api/src/__tests__/cost-attribution.test.ts:81)"}, "properties": {"repobilityId": "1eabc19ad57a63d4", "scanner": "scanner-primary", "fingerprint": "e16575328f818f8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9f42d2ffff5559fc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cost-attribution/connectors/hubspot?period=quarter (apps/api/src/__tests__/cost-attribution.test.ts:88)"}, "properties": {"repobilityId": "59ccf15487caa604", "scanner": "scanner-primary", "fingerprint": "9f42d2ffff5559fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38152ef2892c09ef", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cost-attribution/users/u1?period=month (apps/api/src/__tests__/cost-attribution.test.ts:95)"}, "properties": {"repobilityId": "0248c5cc6930681e", "scanner": "scanner-primary", "fingerprint": "38152ef2892c09ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e44f05460277f461", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cost-attribution/connector-events (apps/api/src/__tests__/cost-attribution.test.ts:104)"}, "properties": {"repobilityId": "00a5726341703cd7", "scanner": "scanner-primary", "fingerprint": "e44f05460277f461", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5317915cdd07f9d8", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:78)"}, "properties": {"repobilityId": "20f9bdba9e8d403f", "scanner": "scanner-primary", "fingerprint": "5317915cdd07f9d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc5dfd9484b8092c", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:90)"}, "properties": {"repobilityId": "794101248ac32b40", "scanner": "scanner-primary", "fingerprint": "fc5dfd9484b8092c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d326b6f891f3076", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/hubspot/benchmark (apps/api/src/__tests__/connector-benchmarks.test.ts:100)"}, "properties": {"repobilityId": "ad07bfe13fa0b2dd", "scanner": "scanner-primary", "fingerprint": "0d326b6f891f3076", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd002514d3e58eda", "level": "error", "message": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results (apps/api/src/__tests__/connector-benchmarks.test.ts:114)"}, "properties": {"repobilityId": "0eb35af277fbe0e0", "scanner": "scanner-primary", "fingerprint": "dd002514d3e58eda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b8a67d722e119947", "level": "error", "message": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results?entityType=contact (apps/api/src/__tests__/connector-benchmarks.test.ts:122)"}, "properties": {"repobilityId": "e9350a00f3f49877", "scanner": "scanner-primary", "fingerprint": "b8a67d722e119947", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d86f452829de3401", "level": "error", "message": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/benchmark-results?limit=10 (apps/api/src/__tests__/connector-benchmarks.test.ts:128)"}, "properties": {"repobilityId": "41ede21bebb925c9", "scanner": "scanner-primary", "fingerprint": "d86f452829de3401", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb154399c6c47360", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/compare (apps/api/src/__tests__/connector-benchmarks.test.ts:138)"}, "properties": {"repobilityId": "c5d57f0e0e629e2b", "scanner": "scanner-primary", "fingerprint": "fb154399c6c47360", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6bcce6c1a8b3d104", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/compare (apps/api/src/__tests__/connector-benchmarks.test.ts:154)"}, "properties": {"repobilityId": "110e068a722f255f", "scanner": "scanner-primary", "fingerprint": "6bcce6c1a8b3d104", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-73f44ebb1cbdaa1f", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/benchmark-matrix (apps/api/src/__tests__/connector-benchmarks.test.ts:168)"}, "properties": {"repobilityId": "5f13ff8bdaa40802", "scanner": "scanner-primary", "fingerprint": "73f44ebb1cbdaa1f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb0418c540861aae", "level": "error", "message": {"text": "Dangling fetch: POST /connector-benchmarks/benchmark-matrix (apps/api/src/__tests__/connector-benchmarks.test.ts:183)"}, "properties": {"repobilityId": "0f6fb508acdc3d9c", "scanner": "scanner-primary", "fingerprint": "eb0418c540861aae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9da949ebd31edea8", "level": "error", "message": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/regression?entityType=contact (apps/api/src/__tests__/connector-benchmarks.test.ts:197)"}, "properties": {"repobilityId": "30f7d13ed98dc927", "scanner": "scanner-primary", "fingerprint": "9da949ebd31edea8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9cd930bb20095c90", "level": "error", "message": {"text": "Dangling fetch: GET /connector-benchmarks/hubspot/regression (apps/api/src/__tests__/connector-benchmarks.test.ts:205)"}, "properties": {"repobilityId": "c7917574700eff83", "scanner": "scanner-primary", "fingerprint": "9cd930bb20095c90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4cdc12084be0dc47", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:42)"}, "properties": {"repobilityId": "4db1d254b17fee06", "scanner": "scanner-primary", "fingerprint": "4cdc12084be0dc47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee0e7c0abba0af33", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:61)"}, "properties": {"repobilityId": "983acba4ac162b35", "scanner": "scanner-primary", "fingerprint": "ee0e7c0abba0af33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09a9778e103e9afb", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:69)"}, "properties": {"repobilityId": "a345ec8df61615f2", "scanner": "scanner-primary", "fingerprint": "09a9778e103e9afb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-90cf72bb82d4e1d2", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:81)"}, "properties": {"repobilityId": "664cb8325ddcaffc", "scanner": "scanner-primary", "fingerprint": "90cf72bb82d4e1d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aac61215ee5fa1e3", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:91)"}, "properties": {"repobilityId": "1998bf44b2fd3c64", "scanner": "scanner-primary", "fingerprint": "aac61215ee5fa1e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b5dc2c6e876acb3", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:109)"}, "properties": {"repobilityId": "0cf7fe669773ef66", "scanner": "scanner-primary", "fingerprint": "7b5dc2c6e876acb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c37b3353d5662b7", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/admin/relevance/weights (apps/api/src/__tests__/relevance.test.ts:121)"}, "properties": {"repobilityId": "7ae811c4ba5e69ae", "scanner": "scanner-primary", "fingerprint": "9c37b3353d5662b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4221f9130a9b9426", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:140)"}, "properties": {"repobilityId": "195d5866db013164", "scanner": "scanner-primary", "fingerprint": "4221f9130a9b9426", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f527365707138b4d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:151)"}, "properties": {"repobilityId": "2467f55c2b287397", "scanner": "scanner-primary", "fingerprint": "f527365707138b4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63af5f3bd99cb783", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:160)"}, "properties": {"repobilityId": "3df204c383c2c902", "scanner": "scanner-primary", "fingerprint": "63af5f3bd99cb783", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2d7db034d9181e5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/relevance/feedback (apps/api/src/__tests__/relevance.test.ts:169)"}, "properties": {"repobilityId": "4bbd6b152a5213bb", "scanner": "scanner-primary", "fingerprint": "c2d7db034d9181e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2aa58baa6c511fbd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/relevance/metrics (apps/api/src/__tests__/relevance.test.ts:181)"}, "properties": {"repobilityId": "417fe0070ef4563a", "scanner": "scanner-primary", "fingerprint": "2aa58baa6c511fbd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-75e50da98325b87f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/relevance/metrics?days=180 (apps/api/src/__tests__/relevance.test.ts:192)"}, "properties": {"repobilityId": "72e7340bd6e3f800", "scanner": "scanner-primary", "fingerprint": "75e50da98325b87f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a88b41333245b464", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:74)"}, "properties": {"repobilityId": "a275eced5be94f05", "scanner": "scanner-primary", "fingerprint": "a88b41333245b464", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee2e92b74a0101ba", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:85)"}, "properties": {"repobilityId": "883ea152048d5f00", "scanner": "scanner-primary", "fingerprint": "ee2e92b74a0101ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-78758b983a7a0f01", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:96)"}, "properties": {"repobilityId": "6848f2702bd1dc7f", "scanner": "scanner-primary", "fingerprint": "78758b983a7a0f01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-197a7beff28341d2", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/estimate (apps/api/src/__tests__/llm-cost-optimization.test.ts:105)"}, "properties": {"repobilityId": "42302d62553da221", "scanner": "scanner-primary", "fingerprint": "197a7beff28341d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8ee637df347609d5", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=5 (apps/api/src/__tests__/llm-cost-optimization.test.ts:116)"}, "properties": {"repobilityId": "ac6bc229fe91e45b", "scanner": "scanner-primary", "fingerprint": "8ee637df347609d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a40b331c34c6359", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations (apps/api/src/__tests__/llm-cost-optimization.test.ts:123)"}, "properties": {"repobilityId": "a5bd174e496d6f3c", "scanner": "scanner-primary", "fingerprint": "7a40b331c34c6359", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9f22398cce1592c", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=15 (apps/api/src/__tests__/llm-cost-optimization.test.ts:128)"}, "properties": {"repobilityId": "fd82a01d1a3c7495", "scanner": "scanner-primary", "fingerprint": "c9f22398cce1592c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-830babde1cbf13ab", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/recommendations?complexityScore=7&maxCostCents=1&minAccuracy=0.9 (apps/api/src/__tests__/llm-cost-optimization.test.ts:133)"}, "properties": {"repobilityId": "148c2b4ea6431f77", "scanner": "scanner-primary", "fingerprint": "830babde1cbf13ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0225ff143eec8b95", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/stats (apps/api/src/__tests__/llm-cost-optimization.test.ts:140)"}, "properties": {"repobilityId": "0dc7caeaaa6f62f4", "scanner": "scanner-primary", "fingerprint": "0225ff143eec8b95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba0668977f6de6a0", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/stats?days=7 (apps/api/src/__tests__/llm-cost-optimization.test.ts:149)"}, "properties": {"repobilityId": "4e214f1b484d592b", "scanner": "scanner-primary", "fingerprint": "ba0668977f6de6a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fae848f322bf1add", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/stats?days=999 (apps/api/src/__tests__/llm-cost-optimization.test.ts:156)"}, "properties": {"repobilityId": "cf6d86e0aeca900c", "scanner": "scanner-primary", "fingerprint": "fae848f322bf1add", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44e417a5a1aa3a5d", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:163)"}, "properties": {"repobilityId": "9dfcd0d3fb91fed3", "scanner": "scanner-primary", "fingerprint": "44e417a5a1aa3a5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf693d916312daa4", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:181)"}, "properties": {"repobilityId": "20cf6a95dbd4f884", "scanner": "scanner-primary", "fingerprint": "bf693d916312daa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af21c100709d5492", "level": "error", "message": {"text": "Dangling fetch: POST /llm-cost-optimization/track (apps/api/src/__tests__/llm-cost-optimization.test.ts:190)"}, "properties": {"repobilityId": "cd9545c710af43d7", "scanner": "scanner-primary", "fingerprint": "af21c100709d5492", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-11a2a53b4da5d30a", "level": "error", "message": {"text": "Dangling fetch: GET /llm-cost-optimization/accuracy-baselines (apps/api/src/__tests__/llm-cost-optimization.test.ts:207)"}, "properties": {"repobilityId": "daaac87ca4238c9e", "scanner": "scanner-primary", "fingerprint": "11a2a53b4da5d30a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b805735aa70c503", "level": "error", "message": {"text": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:55)"}, "properties": {"repobilityId": "3e9b3fa7c0da519a", "scanner": "scanner-primary", "fingerprint": "3b805735aa70c503", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c8b049d5ed076d80", "level": "error", "message": {"text": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:61)"}, "properties": {"repobilityId": "6483baabdfa99dc7", "scanner": "scanner-primary", "fingerprint": "c8b049d5ed076d80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8df604586d01e693", "level": "error", "message": {"text": "Dangling fetch: GET /protected/echo (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:69)"}, "properties": {"repobilityId": "cdb365447093f9a0", "scanner": "scanner-primary", "fingerprint": "8df604586d01e693", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93d06adaf8ebf7f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=ws-A (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:107)"}, "properties": {"repobilityId": "d7b6028d7595776c", "scanner": "scanner-primary", "fingerprint": "93d06adaf8ebf7f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9254fff92d7828c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=ws-A (apps/api/src/__tests__/multi-tenant-isolation.integration.test.ts:114)"}, "properties": {"repobilityId": "9889764d2a39935c", "scanner": "scanner-primary", "fingerprint": "d9254fff92d7828c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-36312baced46ad2d", "level": "error", "message": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:63)"}, "properties": {"repobilityId": "3a693c2c2c5397d8", "scanner": "scanner-primary", "fingerprint": "36312baced46ad2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2cd01dd6a92d8b3", "level": "error", "message": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:74)"}, "properties": {"repobilityId": "62502497443e3bb5", "scanner": "scanner-primary", "fingerprint": "f2cd01dd6a92d8b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb97941efae7c4e2", "level": "error", "message": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:85)"}, "properties": {"repobilityId": "72f81344db664283", "scanner": "scanner-primary", "fingerprint": "fb97941efae7c4e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-397db588947ea65e", "level": "error", "message": {"text": "Dangling fetch: POST /admin/cost-audit (apps/api/src/__tests__/admin-cost-audit.test.ts:97)"}, "properties": {"repobilityId": "ecb8c49900b44bcb", "scanner": "scanner-primary", "fingerprint": "397db588947ea65e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d80efb516853c451", "level": "error", "message": {"text": "Dangling fetch: GET /admin/cost-audit/top-workspaces?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/admin-cost-audit.test.ts:111)"}, "properties": {"repobilityId": "52cacdc812495265", "scanner": "scanner-primary", "fingerprint": "d80efb516853c451", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7cb0b0f5d796c64f", "level": "error", "message": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:55)"}, "properties": {"repobilityId": "a05cebce1846f27c", "scanner": "scanner-primary", "fingerprint": "7cb0b0f5d796c64f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-537c982e002ff116", "level": "error", "message": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:66)"}, "properties": {"repobilityId": "85ecb0a16a3a8a7b", "scanner": "scanner-primary", "fingerprint": "537c982e002ff116", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be86bcb62177b72e", "level": "error", "message": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:75)"}, "properties": {"repobilityId": "a9bc5b282cb7c632", "scanner": "scanner-primary", "fingerprint": "be86bcb62177b72e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f111ab485e173417", "level": "error", "message": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:84)"}, "properties": {"repobilityId": "12d189b759b01121", "scanner": "scanner-primary", "fingerprint": "f111ab485e173417", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72bf33b6b6920a43", "level": "error", "message": {"text": "Dangling fetch: POST /dsr/request (apps/api/src/__tests__/dsr.test.ts:90)"}, "properties": {"repobilityId": "e2da5dda4331fda0", "scanner": "scanner-primary", "fingerprint": "72bf33b6b6920a43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f456f3094bf010c5", "level": "error", "message": {"text": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:52)"}, "properties": {"repobilityId": "f1bb77ceb4b923ed", "scanner": "scanner-primary", "fingerprint": "f456f3094bf010c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4ac163a00f9bc7ad", "level": "error", "message": {"text": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:70)"}, "properties": {"repobilityId": "ece437b0f2e6b964", "scanner": "scanner-primary", "fingerprint": "4ac163a00f9bc7ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ae61bec5f078a261", "level": "error", "message": {"text": "Dangling fetch: POST /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:79)"}, "properties": {"repobilityId": "a0c3aad3083cfbc5", "scanner": "scanner-primary", "fingerprint": "ae61bec5f078a261", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f2451cb03d2bc51", "level": "error", "message": {"text": "Dangling fetch: GET /validation/rules (apps/api/src/__tests__/entity-validation.test.ts:93)"}, "properties": {"repobilityId": "892a3f32878e04f9", "scanner": "scanner-primary", "fingerprint": "6f2451cb03d2bc51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7567ed1dceca3ca", "level": "error", "message": {"text": "Dangling fetch: GET /validation/rules?entityType=deal (apps/api/src/__tests__/entity-validation.test.ts:102)"}, "properties": {"repobilityId": "41a1ddb7552d4320", "scanner": "scanner-primary", "fingerprint": "c7567ed1dceca3ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-606e4afb5ce65d44", "level": "error", "message": {"text": "Dangling fetch: DELETE /validation/rules/rule-uuid (apps/api/src/__tests__/entity-validation.test.ts:112)"}, "properties": {"repobilityId": "c602227a8c61a5cb", "scanner": "scanner-primary", "fingerprint": "606e4afb5ce65d44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-11a3a3585f8f2c48", "level": "error", "message": {"text": "Dangling fetch: POST /validation/validate-entity (apps/api/src/__tests__/entity-validation.test.ts:125)"}, "properties": {"repobilityId": "e8114fecd4e9eb18", "scanner": "scanner-primary", "fingerprint": "11a3a3585f8f2c48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4691bd86ed07686", "level": "error", "message": {"text": "Dangling fetch: POST /validation/validate-entity (apps/api/src/__tests__/entity-validation.test.ts:144)"}, "properties": {"repobilityId": "cf0a41fa394a5863", "scanner": "scanner-primary", "fingerprint": "c4691bd86ed07686", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d427e50dd15313b", "level": "error", "message": {"text": "Dangling fetch: GET /validation/failures (apps/api/src/__tests__/entity-validation.test.ts:158)"}, "properties": {"repobilityId": "c8ca7bd542f57552", "scanner": "scanner-primary", "fingerprint": "8d427e50dd15313b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d3e993bc8ddcef9", "level": "error", "message": {"text": "Dangling fetch: GET /validation/failures?acknowledged=false (apps/api/src/__tests__/entity-validation.test.ts:167)"}, "properties": {"repobilityId": "d1d0d36b16a2fc1f", "scanner": "scanner-primary", "fingerprint": "3d3e993bc8ddcef9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bc2e1498b6ed7229", "level": "error", "message": {"text": "Dangling fetch: GET /validation/failures?limit=999 (apps/api/src/__tests__/entity-validation.test.ts:172)"}, "properties": {"repobilityId": "d2dfaffec5b68085", "scanner": "scanner-primary", "fingerprint": "bc2e1498b6ed7229", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-37ee286cd6b67081", "level": "error", "message": {"text": "Dangling fetch: POST /validation/failures/f-uuid/acknowledge (apps/api/src/__tests__/entity-validation.test.ts:182)"}, "properties": {"repobilityId": "394f11f984c28686", "scanner": "scanner-primary", "fingerprint": "37ee286cd6b67081", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-630189e6391724ff", "level": "error", "message": {"text": "Dangling fetch: GET /validation/report (apps/api/src/__tests__/entity-validation.test.ts:197)"}, "properties": {"repobilityId": "a5f49dac099b45a0", "scanner": "scanner-primary", "fingerprint": "630189e6391724ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b504f8eaedf60864", "level": "error", "message": {"text": "Dangling fetch: GET /admin/embedding-config (apps/api/src/__tests__/admin-embedding.test.ts:51)"}, "properties": {"repobilityId": "5e6f0a22527a6cd0", "scanner": "scanner-primary", "fingerprint": "b504f8eaedf60864", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3754872b7b01fe9b", "level": "error", "message": {"text": "Dangling fetch: GET /admin/embedding-config?workspaceId=ws-1 (apps/api/src/__tests__/admin-embedding.test.ts:57)"}, "properties": {"repobilityId": "d461217bd0758593", "scanner": "scanner-primary", "fingerprint": "3754872b7b01fe9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01d1cddd9b245157", "level": "error", "message": {"text": "Dangling fetch: GET /admin/embedding-config?workspaceId=ws-new (apps/api/src/__tests__/admin-embedding.test.ts:66)"}, "properties": {"repobilityId": "8081ddb8787f2370", "scanner": "scanner-primary", "fingerprint": "01d1cddd9b245157", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b32c588b50dc85b", "level": "error", "message": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:81)"}, "properties": {"repobilityId": "bc7b6c41c0567bba", "scanner": "scanner-primary", "fingerprint": "4b32c588b50dc85b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-79ded761d1f2b9ca", "level": "error", "message": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:91)"}, "properties": {"repobilityId": "1ddd305598e2c332", "scanner": "scanner-primary", "fingerprint": "79ded761d1f2b9ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e7afe6782074258", "level": "error", "message": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:101)"}, "properties": {"repobilityId": "f99ab8e348645859", "scanner": "scanner-primary", "fingerprint": "3e7afe6782074258", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ad42b953c90288b", "level": "error", "message": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:114)"}, "properties": {"repobilityId": "4c2ac62fa3e529ed", "scanner": "scanner-primary", "fingerprint": "6ad42b953c90288b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef9c0b0270ced34a", "level": "error", "message": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:124)"}, "properties": {"repobilityId": "b7ea8e8354487326", "scanner": "scanner-primary", "fingerprint": "ef9c0b0270ced34a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2075066a22d5a940", "level": "error", "message": {"text": "Dangling fetch: POST /admin/embedding-config/migrate (apps/api/src/__tests__/admin-embedding.test.ts:136)"}, "properties": {"repobilityId": "f13683c5f2348c3f", "scanner": "scanner-primary", "fingerprint": "2075066a22d5a940", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3333947f35272a5d", "level": "error", "message": {"text": "Dangling fetch: GET /admin/dlq?workspaceId=ws-test (apps/api/src/__tests__/admin-dlq.test.ts:61)"}, "properties": {"repobilityId": "dd35186da81d2107", "scanner": "scanner-primary", "fingerprint": "3333947f35272a5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb80814a73b7c424", "level": "error", "message": {"text": "Dangling fetch: GET /admin/dlq (apps/api/src/__tests__/admin-dlq.test.ts:75)"}, "properties": {"repobilityId": "2682d77abd74ceeb", "scanner": "scanner-primary", "fingerprint": "fb80814a73b7c424", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-262a893e36838c57", "level": "error", "message": {"text": "Dangling fetch: GET /admin/dlq?limit=999 (apps/api/src/__tests__/admin-dlq.test.ts:84)"}, "properties": {"repobilityId": "349d5148458cdfe7", "scanner": "scanner-primary", "fingerprint": "262a893e36838c57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a895bbedbf160ded", "level": "error", "message": {"text": "Dangling fetch: GET /admin/dlq (apps/api/src/__tests__/admin-dlq.test.ts:92)"}, "properties": {"repobilityId": "e84c3ec3c2e3297a", "scanner": "scanner-primary", "fingerprint": "a895bbedbf160ded", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ca47bee11219d374", "level": "error", "message": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:104)"}, "properties": {"repobilityId": "ac696d4a65801ebf", "scanner": "scanner-primary", "fingerprint": "ca47bee11219d374", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-304a136156996d85", "level": "error", "message": {"text": "Dangling fetch: POST /admin/dlq/nonexistent-id/retry (apps/api/src/__tests__/admin-dlq.test.ts:120)"}, "properties": {"repobilityId": "78c7b48d2d858e41", "scanner": "scanner-primary", "fingerprint": "304a136156996d85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f804976bc71e072", "level": "error", "message": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:133)"}, "properties": {"repobilityId": "e777c27ee8579dad", "scanner": "scanner-primary", "fingerprint": "3f804976bc71e072", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0afe652bbd98f116", "level": "error", "message": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:146)"}, "properties": {"repobilityId": "1c3544ed66670859", "scanner": "scanner-primary", "fingerprint": "0afe652bbd98f116", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be0cbd4f03120538", "level": "error", "message": {"text": "Dangling fetch: POST /admin/dlq/${FAKE_ENTRY.id}/retry (apps/api/src/__tests__/admin-dlq.test.ts:159)"}, "properties": {"repobilityId": "79bcfacc26becacd", "scanner": "scanner-primary", "fingerprint": "be0cbd4f03120538", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34cbd568d6292ce1", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage (apps/api/src/__tests__/entity-lineage.test.ts:48)"}, "properties": {"repobilityId": "e1154c440c3e690a", "scanner": "scanner-primary", "fingerprint": "34cbd568d6292ce1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7d253c25c99b3ff", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:unknown/lineage?workspaceId=ws-1 (apps/api/src/__tests__/entity-lineage.test.ts:55)"}, "properties": {"repobilityId": "7936688ab37fd463", "scanner": "scanner-primary", "fingerprint": "e7d253c25c99b3ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d349df3bcaf818d", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage?workspaceId=ws-1 (apps/api/src/__tests__/entity-lineage.test.ts:64)"}, "properties": {"repobilityId": "2d98b432caf646ae", "scanner": "scanner-primary", "fingerprint": "6d349df3bcaf818d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b317c035e261836", "level": "error", "message": {"text": "Dangling fetch: GET /entities/my:entity:42/lineage?workspaceId=ws-x (apps/api/src/__tests__/entity-lineage.test.ts:76)"}, "properties": {"repobilityId": "d40febfdfe54de4b", "scanner": "scanner-primary", "fingerprint": "7b317c035e261836", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-967e5557de49b294", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:33)"}, "properties": {"repobilityId": "049037958afefb55", "scanner": "scanner-primary", "fingerprint": "967e5557de49b294", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b03c96f703fb63a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:46)"}, "properties": {"repobilityId": "434928d38f14d1b3", "scanner": "scanner-primary", "fingerprint": "0b03c96f703fb63a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4af8aa65f51fb6b5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:58)"}, "properties": {"repobilityId": "7e9df847373eed7b", "scanner": "scanner-primary", "fingerprint": "4af8aa65f51fb6b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a5d85021d5d8450", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:69)"}, "properties": {"repobilityId": "30899bb8fbf7a31d", "scanner": "scanner-primary", "fingerprint": "4a5d85021d5d8450", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16ce056ef7bfa48a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/api/src/__tests__/osi-interchange.test.ts:90)"}, "properties": {"repobilityId": "2d40d666d2bbbde3", "scanner": "scanner-primary", "fingerprint": "16ce056ef7bfa48a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e051d619873f7e07", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/export/osi/info (apps/api/src/__tests__/osi-interchange.test.ts:106)"}, "properties": {"repobilityId": "bdb7b41e2b176253", "scanner": "scanner-primary", "fingerprint": "e051d619873f7e07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9f8b301616833b45", "level": "error", "message": {"text": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:27)"}, "properties": {"repobilityId": "6a84c14cfa958d79", "scanner": "scanner-primary", "fingerprint": "9f8b301616833b45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a39c1c3daac74d62", "level": "error", "message": {"text": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:40)"}, "properties": {"repobilityId": "ae4be797bd73824e", "scanner": "scanner-primary", "fingerprint": "a39c1c3daac74d62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6bfc8f4c012983da", "level": "error", "message": {"text": "Dangling fetch: POST /metrics/computed (apps/api/src/__tests__/computed-metrics.test.ts:52)"}, "properties": {"repobilityId": "a2702ca511168c64", "scanner": "scanner-primary", "fingerprint": "6bfc8f4c012983da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d89385eeea3d7fc", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:66)"}, "properties": {"repobilityId": "359c8d950359d999", "scanner": "scanner-primary", "fingerprint": "5d89385eeea3d7fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b1ab25ee4c7ff4de", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:82)"}, "properties": {"repobilityId": "2d3ccd14cf354f45", "scanner": "scanner-primary", "fingerprint": "b1ab25ee4c7ff4de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff7167f8ae14f911", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed/non-existent/value?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:94)"}, "properties": {"repobilityId": "7e1d3f3e4057854c", "scanner": "scanner-primary", "fingerprint": "ff7167f8ae14f911", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16c8d4a2e8251b5d", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed/ws-1:arr/value?workspaceId=ws-1 (apps/api/src/__tests__/computed-metrics.test.ts:104)"}, "properties": {"repobilityId": "d203170736a4bb56", "scanner": "scanner-primary", "fingerprint": "16c8d4a2e8251b5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a630e6dc6bee231", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed/m-1/value (apps/api/src/__tests__/computed-metrics.test.ts:113)"}, "properties": {"repobilityId": "f2476c1bce26c446", "scanner": "scanner-primary", "fingerprint": "5a630e6dc6bee231", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-669709e6cf739879", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed/ws-1:arr/explain (apps/api/src/__tests__/computed-metrics.test.ts:123)"}, "properties": {"repobilityId": "08e4b5e27f2984b9", "scanner": "scanner-primary", "fingerprint": "669709e6cf739879", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-61146f99cf00a7d3", "level": "error", "message": {"text": "Dangling fetch: GET /metrics/computed/ws-1:arr/explain (apps/api/src/__tests__/computed-metrics.test.ts:136)"}, "properties": {"repobilityId": "ce9162606d4f90f2", "scanner": "scanner-primary", "fingerprint": "61146f99cf00a7d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1448203564274fd4", "level": "error", "message": {"text": "Dangling fetch: GET /api-keys (apps/api/src/__tests__/api-key-management.test.ts:55)"}, "properties": {"repobilityId": "016bc8294af84d6b", "scanner": "scanner-primary", "fingerprint": "1448203564274fd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b8fc620fcb0e2de9", "level": "error", "message": {"text": "Dangling fetch: GET /api-keys (apps/api/src/__tests__/api-key-management.test.ts:62)"}, "properties": {"repobilityId": "4352473e916fd26a", "scanner": "scanner-primary", "fingerprint": "b8fc620fcb0e2de9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5db58e4035ccc087", "level": "error", "message": {"text": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:71)"}, "properties": {"repobilityId": "5df17d1c94df6a73", "scanner": "scanner-primary", "fingerprint": "5db58e4035ccc087", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea9d18fe4c2b8a0e", "level": "error", "message": {"text": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:80)"}, "properties": {"repobilityId": "db878b4db756e003", "scanner": "scanner-primary", "fingerprint": "ea9d18fe4c2b8a0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a734b7610e989b43", "level": "error", "message": {"text": "Dangling fetch: POST /api-keys (apps/api/src/__tests__/api-key-management.test.ts:89)"}, "properties": {"repobilityId": "e21bfc8300385137", "scanner": "scanner-primary", "fingerprint": "a734b7610e989b43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c34c9438f7440e0d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics (apps/api/src/__tests__/metrics.test.ts:54)"}, "properties": {"repobilityId": "f0093d2a035ffe82", "scanner": "scanner-primary", "fingerprint": "c34c9438f7440e0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72219ae0a7a12d02", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:62)"}, "properties": {"repobilityId": "ce57e30e06fd03c5", "scanner": "scanner-primary", "fingerprint": "72219ae0a7a12d02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-afba0b8ab953483e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:73)"}, "properties": {"repobilityId": "0f4faf589d57f0a6", "scanner": "scanner-primary", "fingerprint": "afba0b8ab953483e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ea384e70e38a1cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics (apps/api/src/__tests__/metrics.test.ts:83)"}, "properties": {"repobilityId": "c93f86466f7e471b", "scanner": "scanner-primary", "fingerprint": "1ea384e70e38a1cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5fca8a560ebc849a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:94)"}, "properties": {"repobilityId": "e210073205213dd7", "scanner": "scanner-primary", "fingerprint": "5fca8a560ebc849a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7bc58104c8c7bcde", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:106)"}, "properties": {"repobilityId": "4a8e892966ea9970", "scanner": "scanner-primary", "fingerprint": "7bc58104c8c7bcde", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2d8348320f82164", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/metrics/monthly_revenue (apps/api/src/__tests__/metrics.test.ts:122)"}, "properties": {"repobilityId": "423d5f939d42954f", "scanner": "scanner-primary", "fingerprint": "b2d8348320f82164", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-48f5cc4a6b83fad3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/metrics/nonexistent?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:130)"}, "properties": {"repobilityId": "82837dedf14d132e", "scanner": "scanner-primary", "fingerprint": "48f5cc4a6b83fad3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-edbeb47e3b8afa05", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/metrics/monthly_revenue?workspaceId=${WORKSPACE} (apps/api/src/__tests__/metrics.test.ts:138)"}, "properties": {"repobilityId": "c460cc8ceae1c430", "scanner": "scanner-primary", "fingerprint": "edbeb47e3b8afa05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a1864a21a3378f16", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:150)"}, "properties": {"repobilityId": "a38cda6ee143df77", "scanner": "scanner-primary", "fingerprint": "a1864a21a3378f16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-06130af314b940d9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/nonexistent/evaluate (apps/api/src/__tests__/metrics.test.ts:161)"}, "properties": {"repobilityId": "2850a34387f5e7e6", "scanner": "scanner-primary", "fingerprint": "06130af314b940d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-255ceea56679822a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:177)"}, "properties": {"repobilityId": "8eb25510f3cd8935", "scanner": "scanner-primary", "fingerprint": "255ceea56679822a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d8cfa9d73c22499", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/metric-1/evaluate (apps/api/src/__tests__/metrics.test.ts:194)"}, "properties": {"repobilityId": "9759dbed522180ef", "scanner": "scanner-primary", "fingerprint": "0d8cfa9d73c22499", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd4126e8c96230ec", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:207)"}, "properties": {"repobilityId": "52a3f6f7dfec4b52", "scanner": "scanner-primary", "fingerprint": "fd4126e8c96230ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5020c36439d30a98", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:218)"}, "properties": {"repobilityId": "c23a50c672f3e3ab", "scanner": "scanner-primary", "fingerprint": "5020c36439d30a98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ac85c39b48220a0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/api/src/__tests__/metrics.test.ts:231)"}, "properties": {"repobilityId": "65a368f8498d463a", "scanner": "scanner-primary", "fingerprint": "1ac85c39b48220a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d6d2d80062d1e7fb", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-engine.test.ts:31)"}, "properties": {"repobilityId": "affb2c752b5bb73b", "scanner": "scanner-primary", "fingerprint": "d6d2d80062d1e7fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2501ae16527811e9", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments (apps/api/src/__tests__/enrichment-engine.test.ts:42)"}, "properties": {"repobilityId": "5422e9ad00db36f3", "scanner": "scanner-primary", "fingerprint": "2501ae16527811e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-92bc5df473d9dc33", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/sources/company-enricher (apps/api/src/__tests__/enrichment-engine.test.ts:52)"}, "properties": {"repobilityId": "87238b6a6055a095", "scanner": "scanner-primary", "fingerprint": "92bc5df473d9dc33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c269933b354d4b07", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/sources/nonexistent (apps/api/src/__tests__/enrichment-engine.test.ts:60)"}, "properties": {"repobilityId": "e96c485921089f68", "scanner": "scanner-primary", "fingerprint": "c269933b354d4b07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cbcab26ed34d2aaa", "level": "error", "message": {"text": "Dangling fetch: POST /enrichments/configure/company-enricher (apps/api/src/__tests__/enrichment-engine.test.ts:69)"}, "properties": {"repobilityId": "c3e20002539df7c7", "scanner": "scanner-primary", "fingerprint": "cbcab26ed34d2aaa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ec1d0c1572ad099", "level": "error", "message": {"text": "Dangling fetch: POST /enrichments/configure/x (apps/api/src/__tests__/enrichment-engine.test.ts:83)"}, "properties": {"repobilityId": "b49530f6568e68df", "scanner": "scanner-primary", "fingerprint": "1ec1d0c1572ad099", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-920f5104a1734f07", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/entities/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:96)"}, "properties": {"repobilityId": "d195ff9f8dd3a8be", "scanner": "scanner-primary", "fingerprint": "920f5104a1734f07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f30a4a2410f74b69", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/entities/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:106)"}, "properties": {"repobilityId": "e61c414ceb4dfde5", "scanner": "scanner-primary", "fingerprint": "f30a4a2410f74b69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3949cd8eb2c619d3", "level": "error", "message": {"text": "Dangling fetch: POST /enrichments/refresh/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:119)"}, "properties": {"repobilityId": "ebc47bbc65477119", "scanner": "scanner-primary", "fingerprint": "3949cd8eb2c619d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f201a81d0d364efa", "level": "error", "message": {"text": "Dangling fetch: POST /enrichments/refresh/contact:001 (apps/api/src/__tests__/enrichment-engine.test.ts:125)"}, "properties": {"repobilityId": "4ff606f63918b538", "scanner": "scanner-primary", "fingerprint": "f201a81d0d364efa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f690490657abbfc", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/coverage (apps/api/src/__tests__/enrichment-engine.test.ts:138)"}, "properties": {"repobilityId": "7267c2b7b666664e", "scanner": "scanner-primary", "fingerprint": "5f690490657abbfc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-32fc6c10ff0702fc", "level": "error", "message": {"text": "Dangling fetch: GET /enrichments/coverage (apps/api/src/__tests__/enrichment-engine.test.ts:148)"}, "properties": {"repobilityId": "248046353438cc10", "scanner": "scanner-primary", "fingerprint": "32fc6c10ff0702fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a68442b2ec09660b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/types (apps/api/src/__tests__/connectors.test.ts:89)"}, "properties": {"repobilityId": "22690acbaf3a8c87", "scanner": "scanner-primary", "fingerprint": "a68442b2ec09660b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c73772c56b4f6394", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/types/hubspot (apps/api/src/__tests__/connectors.test.ts:101)"}, "properties": {"repobilityId": "83cba1fa66eac793", "scanner": "scanner-primary", "fingerprint": "c73772c56b4f6394", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ad02281e35b3e9f9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/types/unknown (apps/api/src/__tests__/connectors.test.ts:110)"}, "properties": {"repobilityId": "4f2970737025a7ef", "scanner": "scanner-primary", "fingerprint": "ad02281e35b3e9f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b38f10d76f2bff7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:122)"}, "properties": {"repobilityId": "38dea7fe27e211ea", "scanner": "scanner-primary", "fingerprint": "3b38f10d76f2bff7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-359d7979f23d2e5a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:130)"}, "properties": {"repobilityId": "d6f3aeec496afc23", "scanner": "scanner-primary", "fingerprint": "359d7979f23d2e5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b4982eef5c230070", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:141)"}, "properties": {"repobilityId": "d250157c80d46931", "scanner": "scanner-primary", "fingerprint": "b4982eef5c230070", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-27e12f3bbe8c0c4c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:151)"}, "properties": {"repobilityId": "d8f9af6fb299f051", "scanner": "scanner-primary", "fingerprint": "27e12f3bbe8c0c4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6b74bdd258089787", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:164)"}, "properties": {"repobilityId": "48efc721716e2f63", "scanner": "scanner-primary", "fingerprint": "6b74bdd258089787", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-99a25c7614a8692f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:179)"}, "properties": {"repobilityId": "af83c3b339a2ee0f", "scanner": "scanner-primary", "fingerprint": "99a25c7614a8692f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fbcd9bf9526aed84", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:195)"}, "properties": {"repobilityId": "7b83fc3e4743ba49", "scanner": "scanner-primary", "fingerprint": "fbcd9bf9526aed84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e3dd4ad3774557b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors (apps/api/src/__tests__/connectors.test.ts:212)"}, "properties": {"repobilityId": "191589f06fabeb88", "scanner": "scanner-primary", "fingerprint": "e3dd4ad3774557b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bce84150ec7c7fe6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:226)"}, "properties": {"repobilityId": "3bcf4fcc4c560103", "scanner": "scanner-primary", "fingerprint": "bce84150ec7c7fe6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-24e4a03adf6ea264", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:234)"}, "properties": {"repobilityId": "d36a7f1fd6bb216c", "scanner": "scanner-primary", "fingerprint": "24e4a03adf6ea264", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-983741c66e524507", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:244)"}, "properties": {"repobilityId": "6388fc56683b1686", "scanner": "scanner-primary", "fingerprint": "983741c66e524507", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c06d03bf22f037d6", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:254)"}, "properties": {"repobilityId": "87b87d2cf878a928", "scanner": "scanner-primary", "fingerprint": "c06d03bf22f037d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a8133de91d82695", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:267)"}, "properties": {"repobilityId": "f723fb3b47d2926c", "scanner": "scanner-primary", "fingerprint": "3a8133de91d82695", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7f89615ce76fde35", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:281)"}, "properties": {"repobilityId": "dcfe073863ee400d", "scanner": "scanner-primary", "fingerprint": "7f89615ce76fde35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d7b807a0037b6ff", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID} (apps/api/src/__tests__/connectors.test.ts:295)"}, "properties": {"repobilityId": "93deff987c6de58e", "scanner": "scanner-primary", "fingerprint": "5d7b807a0037b6ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-566d1adc3a462761", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:303)"}, "properties": {"repobilityId": "d54b992b6de33961", "scanner": "scanner-primary", "fingerprint": "566d1adc3a462761", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da35d60f624e6020", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/connectors/${INSTANCE_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:313)"}, "properties": {"repobilityId": "3e223abd59fd1a76", "scanner": "scanner-primary", "fingerprint": "da35d60f624e6020", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e63aa89d31834fad", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync (apps/api/src/__tests__/connectors.test.ts:323)"}, "properties": {"repobilityId": "19c18aaccd28511f", "scanner": "scanner-primary", "fingerprint": "e63aa89d31834fad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cf7c88317fbfcaf8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:331)"}, "properties": {"repobilityId": "d94ca8e5481f5aad", "scanner": "scanner-primary", "fingerprint": "cf7c88317fbfcaf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a1cbf1c7a496a5bf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/sync?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:340)"}, "properties": {"repobilityId": "ba20522ac12eed7b", "scanner": "scanner-primary", "fingerprint": "a1cbf1c7a496a5bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-524dcaf9eb92e41d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test (apps/api/src/__tests__/connectors.test.ts:353)"}, "properties": {"repobilityId": "44708dfc71c4b92b", "scanner": "scanner-primary", "fingerprint": "524dcaf9eb92e41d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-635ea05d84cd95f2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:361)"}, "properties": {"repobilityId": "13aadcf5cc7a8ec7", "scanner": "scanner-primary", "fingerprint": "635ea05d84cd95f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ebf83f1759e5328", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${INSTANCE_ID}/test?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:371)"}, "properties": {"repobilityId": "e985f958c2df0e35", "scanner": "scanner-primary", "fingerprint": "5ebf83f1759e5328", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12b5931a2277921a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule (apps/api/src/__tests__/connectors.test.ts:381)"}, "properties": {"repobilityId": "3c629267eed116e0", "scanner": "scanner-primary", "fingerprint": "12b5931a2277921a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b02c879360d446a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:387)"}, "properties": {"repobilityId": "88c27938e410c727", "scanner": "scanner-primary", "fingerprint": "b02c879360d446a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f813da8626b4b222", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:396)"}, "properties": {"repobilityId": "bea4410bebbf8954", "scanner": "scanner-primary", "fingerprint": "f813da8626b4b222", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-694563144bd2a1dd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:406)"}, "properties": {"repobilityId": "3b6d6ae11d89e234", "scanner": "scanner-primary", "fingerprint": "694563144bd2a1dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-02d99974aea81935", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:414)"}, "properties": {"repobilityId": "8f8f7bdcf0f2dcd0", "scanner": "scanner-primary", "fingerprint": "02d99974aea81935", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17b6241d263b7747", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule (apps/api/src/__tests__/connectors.test.ts:424)"}, "properties": {"repobilityId": "b4b88b5c63669c15", "scanner": "scanner-primary", "fingerprint": "17b6241d263b7747", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e064d0b460fd75a6", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:434)"}, "properties": {"repobilityId": "1c06e6c806456de5", "scanner": "scanner-primary", "fingerprint": "e064d0b460fd75a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6da4fd8eb9f8356e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:444)"}, "properties": {"repobilityId": "3872870e1f589870", "scanner": "scanner-primary", "fingerprint": "6da4fd8eb9f8356e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c1663d2b0e5791ab", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:458)"}, "properties": {"repobilityId": "9dedcfe25cb4e191", "scanner": "scanner-primary", "fingerprint": "c1663d2b0e5791ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7019e28c16026643", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:473)"}, "properties": {"repobilityId": "83cc0d9caa609ea2", "scanner": "scanner-primary", "fingerprint": "7019e28c16026643", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f6bd4820193cd3a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/${INSTANCE_ID}/schedule?workspaceId=${WORKSPACE} (apps/api/src/__tests__/connectors.test.ts:488)"}, "properties": {"repobilityId": "0e601aebb8612c2d", "scanner": "scanner-primary", "fingerprint": "6f6bd4820193cd3a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f70f19cfac2f0b94", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:74)"}, "properties": {"repobilityId": "15f8b2b3a0c150de", "scanner": "scanner-primary", "fingerprint": "f70f19cfac2f0b94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b18b007cc95bf6a1", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:82)"}, "properties": {"repobilityId": "7b73e638e0fcf382", "scanner": "scanner-primary", "fingerprint": "b18b007cc95bf6a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d8f20e17db935f3b", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=14 (apps/api/src/__tests__/cost-optimizer.test.ts:87)"}, "properties": {"repobilityId": "4154da33e25e8a09", "scanner": "scanner-primary", "fingerprint": "d8f20e17db935f3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff5bb0929f40ac0d", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=-1 (apps/api/src/__tests__/cost-optimizer.test.ts:92)"}, "properties": {"repobilityId": "50b4886203f61264", "scanner": "scanner-primary", "fingerprint": "ff5bb0929f40ac0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be5500aed6e90184", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations?windowDays=400 (apps/api/src/__tests__/cost-optimizer.test.ts:97)"}, "properties": {"repobilityId": "1b357f32eb1930fe", "scanner": "scanner-primary", "fingerprint": "be5500aed6e90184", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9a8adef538094713", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:103)"}, "properties": {"repobilityId": "7a247e63bd743564", "scanner": "scanner-primary", "fingerprint": "9a8adef538094713", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-77938f7866756941", "level": "error", "message": {"text": "Dangling fetch: GET /cost-optimizer/recommendations (apps/api/src/__tests__/cost-optimizer.test.ts:109)"}, "properties": {"repobilityId": "51a8933abf7ddbd8", "scanner": "scanner-primary", "fingerprint": "77938f7866756941", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-205b920a436f1df5", "level": "error", "message": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:116)"}, "properties": {"repobilityId": "d77ca5a52931d3cc", "scanner": "scanner-primary", "fingerprint": "205b920a436f1df5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb13a024dadba744", "level": "error", "message": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:128)"}, "properties": {"repobilityId": "430b014d068c36df", "scanner": "scanner-primary", "fingerprint": "bb13a024dadba744", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4ce384de4fae4509", "level": "error", "message": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:133)"}, "properties": {"repobilityId": "09a70c7267d23919", "scanner": "scanner-primary", "fingerprint": "4ce384de4fae4509", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ca4faafcd513bdf", "level": "error", "message": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:142)"}, "properties": {"repobilityId": "faf70fe1ddabf39f", "scanner": "scanner-primary", "fingerprint": "2ca4faafcd513bdf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a1293b956108b24", "level": "error", "message": {"text": "Dangling fetch: POST /cost-optimizer/apply (apps/api/src/__tests__/cost-optimizer.test.ts:152)"}, "properties": {"repobilityId": "82b9baa83ddb7152", "scanner": "scanner-primary", "fingerprint": "5a1293b956108b24", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-940eb495fea7bef8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:44)"}, "properties": {"repobilityId": "1d6922ff1b15a817", "scanner": "scanner-primary", "fingerprint": "940eb495fea7bef8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b01c1c39483c1c7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:54)"}, "properties": {"repobilityId": "c9804abb274594a9", "scanner": "scanner-primary", "fingerprint": "7b01c1c39483c1c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dfe3096219d8c00d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:66)"}, "properties": {"repobilityId": "f449b0189eed3b5c", "scanner": "scanner-primary", "fingerprint": "dfe3096219d8c00d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b775cbfaff0499dd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/api/src/__tests__/nlp-config.test.ts:81)"}, "properties": {"repobilityId": "7ad14b9d0934ded0", "scanner": "scanner-primary", "fingerprint": "b775cbfaff0499dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17af29b5cc9c6b7d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:98)"}, "properties": {"repobilityId": "57878d578a6f54c1", "scanner": "scanner-primary", "fingerprint": "17af29b5cc9c6b7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9aadc6a8792f0be", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:110)"}, "properties": {"repobilityId": "1cbd18b1741b437a", "scanner": "scanner-primary", "fingerprint": "f9aadc6a8792f0be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e39826e1bc58b256", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:122)"}, "properties": {"repobilityId": "9a65d2318a2d368e", "scanner": "scanner-primary", "fingerprint": "e39826e1bc58b256", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb70c3904c11dc17", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:138)"}, "properties": {"repobilityId": "e41a6fe2050cf37c", "scanner": "scanner-primary", "fingerprint": "fb70c3904c11dc17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-43d4c2efe46bcaf6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:146)"}, "properties": {"repobilityId": "81b89628db87f008", "scanner": "scanner-primary", "fingerprint": "43d4c2efe46bcaf6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ee940ccea88d476", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/api/src/__tests__/nlp-config.test.ts:157)"}, "properties": {"repobilityId": "c6a46c9450ed8e2b", "scanner": "scanner-primary", "fingerprint": "0ee940ccea88d476", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ef4b16d70aa5ec7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:167)"}, "properties": {"repobilityId": "78266bbaac7803cc", "scanner": "scanner-primary", "fingerprint": "0ef4b16d70aa5ec7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8fe1cec7f26deaa6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:177)"}, "properties": {"repobilityId": "6c1c8f50e41013f5", "scanner": "scanner-primary", "fingerprint": "8fe1cec7f26deaa6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8535dbe05dfb1d6b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/nonexistent/apply (apps/api/src/__tests__/nlp-config.test.ts:189)"}, "properties": {"repobilityId": "41f634146e320254", "scanner": "scanner-primary", "fingerprint": "8535dbe05dfb1d6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7f8024e423e5ab09", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/intent-1/apply (apps/api/src/__tests__/nlp-config.test.ts:202)"}, "properties": {"repobilityId": "d4c5fcfa815a2c0b", "scanner": "scanner-primary", "fingerprint": "7f8024e423e5ab09", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ef67e2e47b2faa0", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/intent-1 (apps/api/src/__tests__/nlp-config.test.ts:218)"}, "properties": {"repobilityId": "0f5b68937d9d6d1f", "scanner": "scanner-primary", "fingerprint": "1ef67e2e47b2faa0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7e66808b140f7c5", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/nonexistent (apps/api/src/__tests__/nlp-config.test.ts:226)"}, "properties": {"repobilityId": "d065d8681d7df280", "scanner": "scanner-primary", "fingerprint": "c7e66808b140f7c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-76ad307c6a99e7d0", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/intent-1 (apps/api/src/__tests__/nlp-config.test.ts:237)"}, "properties": {"repobilityId": "81a4b1474553f0dd", "scanner": "scanner-primary", "fingerprint": "76ad307c6a99e7d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c8a66d73230c09f9", "level": "error", "message": {"text": "Dangling fetch: GET /workflows (apps/api/src/__tests__/workflows.test.ts:53)"}, "properties": {"repobilityId": "51c8c06a2209475e", "scanner": "scanner-primary", "fingerprint": "c8a66d73230c09f9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68f07f13299c76be", "level": "error", "message": {"text": "Dangling fetch: GET /workflows?category=sales (apps/api/src/__tests__/workflows.test.ts:60)"}, "properties": {"repobilityId": "ab776e96c3d4eb38", "scanner": "scanner-primary", "fingerprint": "68f07f13299c76be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5f06fe1c0488c8a", "level": "error", "message": {"text": "Dangling fetch: GET /workflows?category=unknown-category (apps/api/src/__tests__/workflows.test.ts:67)"}, "properties": {"repobilityId": "4dc96b6af502dc8f", "scanner": "scanner-primary", "fingerprint": "f5f06fe1c0488c8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20142cfb4b16581d", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/non-existent (apps/api/src/__tests__/workflows.test.ts:78)"}, "properties": {"repobilityId": "8e7d18c81e8a70be", "scanner": "scanner-primary", "fingerprint": "20142cfb4b16581d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c78e79c46d2dac5", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/sales-pipeline-review (apps/api/src/__tests__/workflows.test.ts:85)"}, "properties": {"repobilityId": "3ccc362094fa21d7", "scanner": "scanner-primary", "fingerprint": "2c78e79c46d2dac5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-89ee63a4875ac003", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/financial-forecast (apps/api/src/__tests__/workflows.test.ts:92)"}, "properties": {"repobilityId": "669308fbbc15ce77", "scanner": "scanner-primary", "fingerprint": "89ee63a4875ac003", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-de78b611a9a5c562", "level": "error", "message": {"text": "Dangling fetch: POST /workflows/ghost/execute (apps/api/src/__tests__/workflows.test.ts:103)"}, "properties": {"repobilityId": "588b3b266d9c20b6", "scanner": "scanner-primary", "fingerprint": "de78b611a9a5c562", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-308cf36b4096cb44", "level": "error", "message": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:112)"}, "properties": {"repobilityId": "d8f138dd1e6831cc", "scanner": "scanner-primary", "fingerprint": "308cf36b4096cb44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d9daf5988be21c8", "level": "error", "message": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:121)"}, "properties": {"repobilityId": "3ba04ed2b77aaf7e", "scanner": "scanner-primary", "fingerprint": "8d9daf5988be21c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-544602375c0ce3d5", "level": "error", "message": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:130)"}, "properties": {"repobilityId": "b5586c8a6dc52035", "scanner": "scanner-primary", "fingerprint": "544602375c0ce3d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0e2d4fcd6bd48a9b", "level": "error", "message": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:141)"}, "properties": {"repobilityId": "f62e2c088ab57530", "scanner": "scanner-primary", "fingerprint": "0e2d4fcd6bd48a9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1cf734759c153af7", "level": "error", "message": {"text": "Dangling fetch: POST /workflows/sales-pipeline-review/execute (apps/api/src/__tests__/workflows.test.ts:153)"}, "properties": {"repobilityId": "7b443cf5464a9105", "scanner": "scanner-primary", "fingerprint": "1cf734759c153af7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63f35feb8cb5ce2c", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/sessions/u-1 (apps/api/src/__tests__/workflows.test.ts:170)"}, "properties": {"repobilityId": "dd514396758978d7", "scanner": "scanner-primary", "fingerprint": "63f35feb8cb5ce2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-081fe85ad29c474e", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/sessions/u-1?workspaceId=ws-1 (apps/api/src/__tests__/workflows.test.ts:183)"}, "properties": {"repobilityId": "d17eaf7b65ada2c4", "scanner": "scanner-primary", "fingerprint": "081fe85ad29c474e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e81bed12c588a4cc", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/sessions/u-1?workspaceId=ws-1&limit=5 (apps/api/src/__tests__/workflows.test.ts:191)"}, "properties": {"repobilityId": "3f9862b9db323e1b", "scanner": "scanner-primary", "fingerprint": "e81bed12c588a4cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-004fd99a4a2d310a", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/sessions/non-existent/result (apps/api/src/__tests__/workflows.test.ts:202)"}, "properties": {"repobilityId": "7758db91e3acc6eb", "scanner": "scanner-primary", "fingerprint": "004fd99a4a2d310a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9e5f51b08b1601ea", "level": "error", "message": {"text": "Dangling fetch: GET /workflows/sessions/s-1/result (apps/api/src/__tests__/workflows.test.ts:216)"}, "properties": {"repobilityId": "a15fb9eeae2db714", "scanner": "scanner-primary", "fingerprint": "9e5f51b08b1601ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-caa8bebdd012f972", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:18)"}, "properties": {"repobilityId": "477aeda173234902", "scanner": "scanner-primary", "fingerprint": "caa8bebdd012f972", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ca1101c2f473c7b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:24)"}, "properties": {"repobilityId": "e3dbec6af5c3e031", "scanner": "scanner-primary", "fingerprint": "5ca1101c2f473c7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18ce1ba1a1fc8a96", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:32)"}, "properties": {"repobilityId": "114ec8d933c219f0", "scanner": "scanner-primary", "fingerprint": "18ce1ba1a1fc8a96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-811195b5116f2fb3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:40)"}, "properties": {"repobilityId": "00bead89410bb410", "scanner": "scanner-primary", "fingerprint": "811195b5116f2fb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9f41bc4299abdf4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:48)"}, "properties": {"repobilityId": "731afee83109b80b", "scanner": "scanner-primary", "fingerprint": "c9f41bc4299abdf4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3fe0af067b5dbd7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:56)"}, "properties": {"repobilityId": "2786f8e00801d447", "scanner": "scanner-primary", "fingerprint": "c3fe0af067b5dbd7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1e32e9f06ce2baf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:64)"}, "properties": {"repobilityId": "0bf6a5e820cfc5fe", "scanner": "scanner-primary", "fingerprint": "e1e32e9f06ce2baf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-22eaad3915802832", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:80)"}, "properties": {"repobilityId": "61f966b7496161af", "scanner": "scanner-primary", "fingerprint": "22eaad3915802832", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a25faca845849cb8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:91)"}, "properties": {"repobilityId": "1d6b3ca176472534", "scanner": "scanner-primary", "fingerprint": "a25faca845849cb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fab4c9c1a31c38f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:98)"}, "properties": {"repobilityId": "8bf87155a4189cb4", "scanner": "scanner-primary", "fingerprint": "9fab4c9c1a31c38f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cee0061ea0b17867", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:106)"}, "properties": {"repobilityId": "30607e2bd80fe3c8", "scanner": "scanner-primary", "fingerprint": "cee0061ea0b17867", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-99260a74ab386813", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:114)"}, "properties": {"repobilityId": "74851b6c35f1f30e", "scanner": "scanner-primary", "fingerprint": "99260a74ab386813", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-deed44f8e2bebb21", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:122)"}, "properties": {"repobilityId": "d50b8c38a7b5579b", "scanner": "scanner-primary", "fingerprint": "deed44f8e2bebb21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3f5c5af08785cee", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:130)"}, "properties": {"repobilityId": "b8d673fd28aaae90", "scanner": "scanner-primary", "fingerprint": "b3f5c5af08785cee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d58b8c80f77d5955", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources (apps/api/src/__tests__/mcp-resource-discovery.test.ts:138)"}, "properties": {"repobilityId": "e9b48cf8179b812c", "scanner": "scanner-primary", "fingerprint": "d58b8c80f77d5955", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff11c7a1507ed059", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:49)"}, "properties": {"repobilityId": "f1d3fe2f42172ff3", "scanner": "scanner-primary", "fingerprint": "ff11c7a1507ed059", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2b147a87865c0b04", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:67)"}, "properties": {"repobilityId": "6105184888b7b306", "scanner": "scanner-primary", "fingerprint": "2b147a87865c0b04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-41220da88fc486c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:80)"}, "properties": {"repobilityId": "f0479e98326e1fdd", "scanner": "scanner-primary", "fingerprint": "41220da88fc486c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7888de4c7f1e0f57", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:92)"}, "properties": {"repobilityId": "dbcf062a866f65b1", "scanner": "scanner-primary", "fingerprint": "7888de4c7f1e0f57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87cd4eecda2e567e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:106)"}, "properties": {"repobilityId": "ce50cacecca038a9", "scanner": "scanner-primary", "fingerprint": "87cd4eecda2e567e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-051e563aa5891d1d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/api/src/__tests__/bulk-operations.test.ts:119)"}, "properties": {"repobilityId": "5b48f6109ce7ec2d", "scanner": "scanner-primary", "fingerprint": "051e563aa5891d1d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-43bdf83e64463c15", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/import/jobs (apps/api/src/__tests__/bulk-operations.test.ts:134)"}, "properties": {"repobilityId": "33d0b28fb3bf83db", "scanner": "scanner-primary", "fingerprint": "43bdf83e64463c15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-600944a3e7af64bd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/import/jobs/nonexistent (apps/api/src/__tests__/bulk-operations.test.ts:147)"}, "properties": {"repobilityId": "6f05f749abcc17c2", "scanner": "scanner-primary", "fingerprint": "600944a3e7af64bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38e067dcdde1b6b8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/import/jobs/job1 (apps/api/src/__tests__/bulk-operations.test.ts:158)"}, "properties": {"repobilityId": "5309fcc973cf0385", "scanner": "scanner-primary", "fingerprint": "38e067dcdde1b6b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25996e5a2643bfea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/export (apps/api/src/__tests__/bulk-operations.test.ts:181)"}, "properties": {"repobilityId": "41b31bfdf5dd8733", "scanner": "scanner-primary", "fingerprint": "25996e5a2643bfea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9bf3b391b0148560", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/export?format=csv (apps/api/src/__tests__/bulk-operations.test.ts:204)"}, "properties": {"repobilityId": "9fc78390bf08387d", "scanner": "scanner-primary", "fingerprint": "9bf3b391b0148560", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-786776705f167aa5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/export (apps/api/src/__tests__/bulk-operations.test.ts:217)"}, "properties": {"repobilityId": "650290de0a2b338c", "scanner": "scanner-primary", "fingerprint": "786776705f167aa5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34ca4c7a353815b9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/export?format=xml (apps/api/src/__tests__/bulk-operations.test.ts:226)"}, "properties": {"repobilityId": "bf2dafd0fc0726bd", "scanner": "scanner-primary", "fingerprint": "34ca4c7a353815b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7be54d4e4bb1374", "level": "error", "message": {"text": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:49)"}, "properties": {"repobilityId": "07a69d2dd063f7f9", "scanner": "scanner-primary", "fingerprint": "c7be54d4e4bb1374", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cbc525dfe29ba43b", "level": "error", "message": {"text": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:57)"}, "properties": {"repobilityId": "53d05551a3e012fd", "scanner": "scanner-primary", "fingerprint": "cbc525dfe29ba43b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7247835cd0438c8e", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:65)"}, "properties": {"repobilityId": "64ddc6ec8eed2a5d", "scanner": "scanner-primary", "fingerprint": "7247835cd0438c8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af474cc22fb2a9a7", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/stats (apps/api/src/__tests__/cache-stats.test.ts:73)"}, "properties": {"repobilityId": "c90fac48cb046e8c", "scanner": "scanner-primary", "fingerprint": "af474cc22fb2a9a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b562527e5c51cbda", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:81)"}, "properties": {"repobilityId": "3b9643553fa7c331", "scanner": "scanner-primary", "fingerprint": "b562527e5c51cbda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-445cc11395e0da3c", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:88)"}, "properties": {"repobilityId": "c943d901e243f48c", "scanner": "scanner-primary", "fingerprint": "445cc11395e0da3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12ce53bf8248c842", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/workspace/ws-1 (apps/api/src/__tests__/cache-stats.test.ts:94)"}, "properties": {"repobilityId": "ce5034f5c83c5b58", "scanner": "scanner-primary", "fingerprint": "12ce53bf8248c842", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9b422f517941daf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters (apps/api/src/__tests__/dedup-admin.test.ts:54)"}, "properties": {"repobilityId": "2136b0c0e0b304d8", "scanner": "scanner-primary", "fingerprint": "d9b422f517941daf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12f1ce04d4f6b347", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters?entityType=contact (apps/api/src/__tests__/dedup-admin.test.ts:64)"}, "properties": {"repobilityId": "14a230dae1ceb5df", "scanner": "scanner-primary", "fingerprint": "12f1ce04d4f6b347", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b4993cbca4dac54", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters (apps/api/src/__tests__/dedup-admin.test.ts:84)"}, "properties": {"repobilityId": "cb92cd7caac1ebbb", "scanner": "scanner-primary", "fingerprint": "7b4993cbca4dac54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-124006ff0b8b3077", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters/cl1/members (apps/api/src/__tests__/dedup-admin.test.ts:99)"}, "properties": {"repobilityId": "7c7cf9153bbb864a", "scanner": "scanner-primary", "fingerprint": "124006ff0b8b3077", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4e76e7147a8cc74", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters/unknown-id/members (apps/api/src/__tests__/dedup-admin.test.ts:109)"}, "properties": {"repobilityId": "a7fe793eecf2210c", "scanner": "scanner-primary", "fingerprint": "c4e76e7147a8cc74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f0d92b2026c42027", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:124)"}, "properties": {"repobilityId": "0e6332b882093739", "scanner": "scanner-primary", "fingerprint": "f0d92b2026c42027", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-897d14014ffe7ad7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:135)"}, "properties": {"repobilityId": "f911354c52c8da74", "scanner": "scanner-primary", "fingerprint": "897d14014ffe7ad7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-26b9171633c52ebd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:146)"}, "properties": {"repobilityId": "1dbaa493746739aa", "scanner": "scanner-primary", "fingerprint": "26b9171633c52ebd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6fc2b40664d0dde6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/api/src/__tests__/dedup-admin.test.ts:167)"}, "properties": {"repobilityId": "1957c8f44b326ca6", "scanner": "scanner-primary", "fingerprint": "6fc2b40664d0dde6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2943ad7908df4369", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/entities/e1/dedup-status (apps/api/src/__tests__/dedup-admin.test.ts:186)"}, "properties": {"repobilityId": "9ce9203f273b634d", "scanner": "scanner-primary", "fingerprint": "2943ad7908df4369", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a8726f9e6438658", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/entities/unknown-entity/dedup-status (apps/api/src/__tests__/dedup-admin.test.ts:196)"}, "properties": {"repobilityId": "891859e75db8d092", "scanner": "scanner-primary", "fingerprint": "0a8726f9e6438658", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6dbbe046c3de2e5a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:69)"}, "properties": {"repobilityId": "55b9f35c02f4622f", "scanner": "scanner-primary", "fingerprint": "6dbbe046c3de2e5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fd21e17dc061f79", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:81)"}, "properties": {"repobilityId": "5605ccb14e4d9231", "scanner": "scanner-primary", "fingerprint": "9fd21e17dc061f79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b143030d9af181e3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown (apps/api/src/__tests__/analytics.test.ts:100)"}, "properties": {"repobilityId": "05919727c9955171", "scanner": "scanner-primary", "fingerprint": "b143030d9af181e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5496a8e2a1efea5f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:114)"}, "properties": {"repobilityId": "78e19e5737103e90", "scanner": "scanner-primary", "fingerprint": "5496a8e2a1efea5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e5fb99e78c0f75b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/breakdown?workspaceId=ws-test (apps/api/src/__tests__/analytics.test.ts:122)"}, "properties": {"repobilityId": "f7955fa5eba7bd4e", "scanner": "scanner-primary", "fingerprint": "1e5fb99e78c0f75b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b3129b2161935b3", "level": "error", "message": {"text": "Dangling fetch: GET /search-experiments/exp-1/results (apps/api/src/__tests__/admin-query-analytics.test.ts:217)"}, "properties": {"repobilityId": "696054ea3f28c029", "scanner": "scanner-primary", "fingerprint": "0b3129b2161935b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d5da678b1b2b07ee", "level": "error", "message": {"text": "Dangling fetch: GET /search-experiments/exp-404/results (apps/api/src/__tests__/admin-query-analytics.test.ts:226)"}, "properties": {"repobilityId": "d701b4ff1b86db89", "scanner": "scanner-primary", "fingerprint": "d5da678b1b2b07ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-26bc223caf53f2da", "level": "error", "message": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:236)"}, "properties": {"repobilityId": "bf26fe6047c43fc2", "scanner": "scanner-primary", "fingerprint": "26bc223caf53f2da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b4bac33a0feb005", "level": "error", "message": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:248)"}, "properties": {"repobilityId": "6ba713c64a1532ae", "scanner": "scanner-primary", "fingerprint": "0b4bac33a0feb005", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ea452b4774c79cd", "level": "error", "message": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:258)"}, "properties": {"repobilityId": "56d8874b9d134496", "scanner": "scanner-primary", "fingerprint": "6ea452b4774c79cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-503c61a0794f9a95", "level": "error", "message": {"text": "Dangling fetch: PUT /search-experiments/bad-id/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:269)"}, "properties": {"repobilityId": "47fe4b24e64b6398", "scanner": "scanner-primary", "fingerprint": "503c61a0794f9a95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-906d879c7485c9b0", "level": "error", "message": {"text": "Dangling fetch: PUT /search-experiments/exp-1/promote (apps/api/src/__tests__/admin-query-analytics.test.ts:280)"}, "properties": {"repobilityId": "4a001b5bc4739eed", "scanner": "scanner-primary", "fingerprint": "906d879c7485c9b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fbb7336dc9844659", "level": "error", "message": {"text": "Dangling fetch: GET /index/optimize?workspaceId=ws-1 (apps/api/src/__tests__/index-optimization.test.ts:43)"}, "properties": {"repobilityId": "5183bfc6163c3961", "scanner": "scanner-primary", "fingerprint": "fbb7336dc9844659", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b1f01ca5fa85175e", "level": "error", "message": {"text": "Dangling fetch: GET /index/optimize (apps/api/src/__tests__/index-optimization.test.ts:50)"}, "properties": {"repobilityId": "6c0e4e411ab7bbd2", "scanner": "scanner-primary", "fingerprint": "b1f01ca5fa85175e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b27347e6f45d82b3", "level": "error", "message": {"text": "Dangling fetch: GET /index/optimize?workspaceId=ws-1&lookbackDays=14 (apps/api/src/__tests__/index-optimization.test.ts:56)"}, "properties": {"repobilityId": "179c1c5888fdef1f", "scanner": "scanner-primary", "fingerprint": "b27347e6f45d82b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f6d8f9aa8171e90c", "level": "error", "message": {"text": "Dangling fetch: GET /index/optimize?workspaceId=ws-1 (apps/api/src/__tests__/index-optimization.test.ts:62)"}, "properties": {"repobilityId": "d12ece91bee06a81", "scanner": "scanner-primary", "fingerprint": "f6d8f9aa8171e90c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b604a3c03b2c4163", "level": "error", "message": {"text": "Dangling fetch: POST /workspaces/ws-1/disable (apps/api/src/__tests__/admin-system.test.ts:119)"}, "properties": {"repobilityId": "8e99ec215e6d71df", "scanner": "scanner-primary", "fingerprint": "b604a3c03b2c4163", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-719ab881baead671", "level": "error", "message": {"text": "Dangling fetch: POST /workspaces/bad-id/disable (apps/api/src/__tests__/admin-system.test.ts:132)"}, "properties": {"repobilityId": "debef8cfb2583ec4", "scanner": "scanner-primary", "fingerprint": "719ab881baead671", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-02110d22dfb90391", "level": "error", "message": {"text": "Dangling fetch: POST /workspaces/ws-1/disable (apps/api/src/__tests__/admin-system.test.ts:143)"}, "properties": {"repobilityId": "a089c630f3bd0d78", "scanner": "scanner-primary", "fingerprint": "02110d22dfb90391", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4c63dba1fc1d0788", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/scan (apps/api/src/__tests__/index-repair.test.ts:60)"}, "properties": {"repobilityId": "84545a6e44160db7", "scanner": "scanner-primary", "fingerprint": "4c63dba1fc1d0788", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03e3471e0fbe8596", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/scan (apps/api/src/__tests__/index-repair.test.ts:70)"}, "properties": {"repobilityId": "8c85e4e037d3f1c6", "scanner": "scanner-primary", "fingerprint": "03e3471e0fbe8596", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f4c025f941db6f56", "level": "error", "message": {"text": "Dangling fetch: GET /index-repair/scans (apps/api/src/__tests__/index-repair.test.ts:78)"}, "properties": {"repobilityId": "6fd0944ce25a7088", "scanner": "scanner-primary", "fingerprint": "f4c025f941db6f56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-83387a53688b00ec", "level": "error", "message": {"text": "Dangling fetch: GET /index-repair/report (apps/api/src/__tests__/index-repair.test.ts:88)"}, "properties": {"repobilityId": "2025f0933879256e", "scanner": "scanner-primary", "fingerprint": "83387a53688b00ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56f0a330ce0db9c1", "level": "error", "message": {"text": "Dangling fetch: GET /index-repair/report (apps/api/src/__tests__/index-repair.test.ts:98)"}, "properties": {"repobilityId": "dfa2de7f537d13f4", "scanner": "scanner-primary", "fingerprint": "56f0a330ce0db9c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c87f9ee13cba565", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:106)"}, "properties": {"repobilityId": "1c74c80ad5345879", "scanner": "scanner-primary", "fingerprint": "2c87f9ee13cba565", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d366c550074fe15e", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:124)"}, "properties": {"repobilityId": "a2d72b05c880c9dc", "scanner": "scanner-primary", "fingerprint": "d366c550074fe15e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db221827b5e20378", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/rebuild (apps/api/src/__tests__/index-repair.test.ts:133)"}, "properties": {"repobilityId": "33ce06da4dff5702", "scanner": "scanner-primary", "fingerprint": "db221827b5e20378", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9c05a023a9b7c9eb", "level": "error", "message": {"text": "Dangling fetch: GET /index-repair/rebuild-jobs (apps/api/src/__tests__/index-repair.test.ts:145)"}, "properties": {"repobilityId": "a6830a05214d8672", "scanner": "scanner-primary", "fingerprint": "9c05a023a9b7c9eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3fc35d46d817ec8", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/rollback/snap-missing (apps/api/src/__tests__/index-repair.test.ts:155)"}, "properties": {"repobilityId": "d280feb44c4290b2", "scanner": "scanner-primary", "fingerprint": "b3fc35d46d817ec8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-28c700b060c264f8", "level": "error", "message": {"text": "Dangling fetch: POST /index-repair/rollback/snap-valid (apps/api/src/__tests__/index-repair.test.ts:164)"}, "properties": {"repobilityId": "531fb595d19d5eee", "scanner": "scanner-primary", "fingerprint": "28c700b060c264f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-434cf385a1fd5c7b", "level": "error", "message": {"text": "Dangling fetch: POST /recipe-1/apply-to-workspace (apps/api/src/__tests__/connector-recipes.test.ts:146)"}, "properties": {"repobilityId": "bb1454ae0cfb74ab", "scanner": "scanner-primary", "fingerprint": "434cf385a1fd5c7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd3c316723675fcc", "level": "error", "message": {"text": "Dangling fetch: POST /recipe-1/apply-to-workspace (apps/api/src/__tests__/connector-recipes.test.ts:154)"}, "properties": {"repobilityId": "bf1b942c2e28292d", "scanner": "scanner-primary", "fingerprint": "fd3c316723675fcc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9dfb115fd15100bb", "level": "error", "message": {"text": "Dangling fetch: POST /recipe-1/clone (apps/api/src/__tests__/connector-recipes.test.ts:163)"}, "properties": {"repobilityId": "72df42edd7f715f5", "scanner": "scanner-primary", "fingerprint": "9dfb115fd15100bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf4cc48a2646752e", "level": "error", "message": {"text": "Dangling fetch: POST /recipe-1/clone (apps/api/src/__tests__/connector-recipes.test.ts:169)"}, "properties": {"repobilityId": "9545bf20749440e3", "scanner": "scanner-primary", "fingerprint": "bf4cc48a2646752e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a8aa7be620f5ea80", "level": "error", "message": {"text": "Dangling fetch: GET /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:178)"}, "properties": {"repobilityId": "1d5fe220463ed756", "scanner": "scanner-primary", "fingerprint": "a8aa7be620f5ea80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5df23068d24c2e96", "level": "error", "message": {"text": "Dangling fetch: GET /missing-recipe (apps/api/src/__tests__/connector-recipes.test.ts:185)"}, "properties": {"repobilityId": "e3505683d02bbda6", "scanner": "scanner-primary", "fingerprint": "5df23068d24c2e96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3fde795870fd80b", "level": "error", "message": {"text": "Dangling fetch: DELETE /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:194)"}, "properties": {"repobilityId": "a339bf4d669fe490", "scanner": "scanner-primary", "fingerprint": "b3fde795870fd80b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10962b2779607d30", "level": "error", "message": {"text": "Dangling fetch: DELETE /recipe-1 (apps/api/src/__tests__/connector-recipes.test.ts:202)"}, "properties": {"repobilityId": "db918af3b5b91453", "scanner": "scanner-primary", "fingerprint": "10962b2779607d30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e2b2c93f7455bf76", "level": "error", "message": {"text": "Dangling fetch: GET /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:212)"}, "properties": {"repobilityId": "f7d82146c075e99b", "scanner": "scanner-primary", "fingerprint": "e2b2c93f7455bf76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b0429a0c5311403", "level": "error", "message": {"text": "Dangling fetch: POST /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:222)"}, "properties": {"repobilityId": "f085975958e6d6b5", "scanner": "scanner-primary", "fingerprint": "8b0429a0c5311403", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f84b1b5f888e419", "level": "error", "message": {"text": "Dangling fetch: POST /recipe-1/reviews (apps/api/src/__tests__/connector-recipes.test.ts:232)"}, "properties": {"repobilityId": "9af8a32b1f2ef4aa", "scanner": "scanner-primary", "fingerprint": "6f84b1b5f888e419", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5deab064ca83a6f0", "level": "error", "message": {"text": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:59)"}, "properties": {"repobilityId": "c7bdde50b83e9deb", "scanner": "scanner-primary", "fingerprint": "5deab064ca83a6f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56a809ecbe1a41f3", "level": "error", "message": {"text": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:68)"}, "properties": {"repobilityId": "ed1a098d19cc73aa", "scanner": "scanner-primary", "fingerprint": "56a809ecbe1a41f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0eaaff853182f13", "level": "error", "message": {"text": "Dangling fetch: GET /email-templates (apps/api/src/__tests__/email-templates.test.ts:75)"}, "properties": {"repobilityId": "52dae80f10a812c9", "scanner": "scanner-primary", "fingerprint": "a0eaaff853182f13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-728cf8580c642a72", "level": "error", "message": {"text": "Dangling fetch: GET /email-templates/tmpl-1 (apps/api/src/__tests__/email-templates.test.ts:82)"}, "properties": {"repobilityId": "044e469adc968341", "scanner": "scanner-primary", "fingerprint": "728cf8580c642a72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb947c533cf3b10e", "level": "error", "message": {"text": "Dangling fetch: GET /email-templates/missing (apps/api/src/__tests__/email-templates.test.ts:90)"}, "properties": {"repobilityId": "b30d6a717d5b4e28", "scanner": "scanner-primary", "fingerprint": "eb947c533cf3b10e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-447b9e157faea75c", "level": "error", "message": {"text": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:97)"}, "properties": {"repobilityId": "0e6ab9d5bbf1d0b7", "scanner": "scanner-primary", "fingerprint": "447b9e157faea75c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cbef190c1a41560c", "level": "error", "message": {"text": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:113)"}, "properties": {"repobilityId": "f36cb3e44566c3b6", "scanner": "scanner-primary", "fingerprint": "cbef190c1a41560c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d16c9a5901e6fd0", "level": "error", "message": {"text": "Dangling fetch: POST /email-templates (apps/api/src/__tests__/email-templates.test.ts:123)"}, "properties": {"repobilityId": "b96c0374ac4d2dc5", "scanner": "scanner-primary", "fingerprint": "4d16c9a5901e6fd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f99ca1d92b36b095", "level": "error", "message": {"text": "Dangling fetch: PUT /email-templates/alert-default (apps/api/src/__tests__/email-templates.test.ts:134)"}, "properties": {"repobilityId": "db9030b5e2bbb4fd", "scanner": "scanner-primary", "fingerprint": "f99ca1d92b36b095", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9a8a4e871b843a58", "level": "error", "message": {"text": "Dangling fetch: DELETE /email-templates/tmpl-1 (apps/api/src/__tests__/email-templates.test.ts:145)"}, "properties": {"repobilityId": "7b6abbed4b7db148", "scanner": "scanner-primary", "fingerprint": "9a8a4e871b843a58", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9706226275084e64", "level": "error", "message": {"text": "Dangling fetch: POST /email-templates/render (apps/api/src/__tests__/email-templates.test.ts:154)"}, "properties": {"repobilityId": "6fdde868ff20840e", "scanner": "scanner-primary", "fingerprint": "9706226275084e64", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8eb1b3b798a4eb9c", "level": "error", "message": {"text": "Dangling fetch: POST /email-templates/render (apps/api/src/__tests__/email-templates.test.ts:166)"}, "properties": {"repobilityId": "f4b18730bdade7e4", "scanner": "scanner-primary", "fingerprint": "8eb1b3b798a4eb9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-acf2f8fbebc56d38", "level": "error", "message": {"text": "Dangling fetch: GET /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:48)"}, "properties": {"repobilityId": "317cc5c30e608528", "scanner": "scanner-primary", "fingerprint": "acf2f8fbebc56d38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d8969e7c643ccc0", "level": "error", "message": {"text": "Dangling fetch: GET /context-suggestions (apps/api/src/__tests__/suggestions.test.ts:55)"}, "properties": {"repobilityId": "e8a8e89a2219f76c", "scanner": "scanner-primary", "fingerprint": "6d8969e7c643ccc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1734fa45c988ba15", "level": "error", "message": {"text": "Dangling fetch: GET /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:61)"}, "properties": {"repobilityId": "70c491e1972ac887", "scanner": "scanner-primary", "fingerprint": "1734fa45c988ba15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed4c8e6d91a8ecb8", "level": "error", "message": {"text": "Dangling fetch: POST /context-suggestions?workspaceId=ws-1 (apps/api/src/__tests__/suggestions.test.ts:69)"}, "properties": {"repobilityId": "1e44bd5a20b67b72", "scanner": "scanner-primary", "fingerprint": "ed4c8e6d91a8ecb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-91556832b0014425", "level": "error", "message": {"text": "Dangling fetch: POST /context-suggestions (apps/api/src/__tests__/suggestions.test.ts:83)"}, "properties": {"repobilityId": "244a4c2457e3e590", "scanner": "scanner-primary", "fingerprint": "91556832b0014425", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e673cc19fcf96a92", "level": "error", "message": {"text": "Dangling fetch: GET /admin/index/maintenance (apps/api/src/__tests__/admin-index.test.ts:44)"}, "properties": {"repobilityId": "730a090b75b30bb1", "scanner": "scanner-primary", "fingerprint": "e673cc19fcf96a92", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-55707343f905fef7", "level": "error", "message": {"text": "Dangling fetch: GET /admin/index/maintenance?workspaceId=ws-1 (apps/api/src/__tests__/admin-index.test.ts:50)"}, "properties": {"repobilityId": "b05a5601ce931fc7", "scanner": "scanner-primary", "fingerprint": "55707343f905fef7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-92f35b9c7033bafe", "level": "error", "message": {"text": "Dangling fetch: GET /admin/index/maintenance?workspaceId=ws-1&limit=10 (apps/api/src/__tests__/admin-index.test.ts:59)"}, "properties": {"repobilityId": "2df2a9c73e9c4dca", "scanner": "scanner-primary", "fingerprint": "92f35b9c7033bafe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d4524393ae9a682", "level": "error", "message": {"text": "Dangling fetch: POST /admin/index/maintenance/unknown/trigger (apps/api/src/__tests__/admin-index.test.ts:68)"}, "properties": {"repobilityId": "0770d3a3cbac6960", "scanner": "scanner-primary", "fingerprint": "8d4524393ae9a682", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0fa22bb32adec3d", "level": "error", "message": {"text": "Dangling fetch: POST /admin/index/maintenance/deduplicate/trigger (apps/api/src/__tests__/admin-index.test.ts:78)"}, "properties": {"repobilityId": "a6d28ec018a61fea", "scanner": "scanner-primary", "fingerprint": "b0fa22bb32adec3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d1a84eb5dc24a30", "level": "error", "message": {"text": "Dangling fetch: POST /admin/index/maintenance/prune_stale/trigger (apps/api/src/__tests__/admin-index.test.ts:90)"}, "properties": {"repobilityId": "7876234f103c0fa8", "scanner": "scanner-primary", "fingerprint": "4d1a84eb5dc24a30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-53a5d0569b70b05f", "level": "error", "message": {"text": "Dangling fetch: POST /admin/index/maintenance/rebalance/trigger (apps/api/src/__tests__/admin-index.test.ts:100)"}, "properties": {"repobilityId": "bf469e0c41e601aa", "scanner": "scanner-primary", "fingerprint": "53a5d0569b70b05f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a5dcb23494900faa", "level": "error", "message": {"text": "Dangling fetch: POST /admin/index/maintenance/integrity_check/trigger (apps/api/src/__tests__/admin-index.test.ts:110)"}, "properties": {"repobilityId": "cc5f5e08f5e44265", "scanner": "scanner-primary", "fingerprint": "a5dcb23494900faa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aae208029392d1aa", "level": "error", "message": {"text": "Dangling fetch: POST /admin/index/maintenance/deduplicate/trigger (apps/api/src/__tests__/admin-index.test.ts:120)"}, "properties": {"repobilityId": "85161a22aaf15d69", "scanner": "scanner-primary", "fingerprint": "aae208029392d1aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fa05b41045c506d7", "level": "error", "message": {"text": "Dangling fetch: GET /admin/index/health (apps/api/src/__tests__/admin-index.test.ts:132)"}, "properties": {"repobilityId": "6159eec6d08d842d", "scanner": "scanner-primary", "fingerprint": "fa05b41045c506d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c4897092b7a1413", "level": "error", "message": {"text": "Dangling fetch: GET /admin/index/health?workspaceId=ws-1 (apps/api/src/__tests__/admin-index.test.ts:138)"}, "properties": {"repobilityId": "e43ed1c6721f7d2b", "scanner": "scanner-primary", "fingerprint": "2c4897092b7a1413", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef2b090398c08d00", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:43)"}, "properties": {"repobilityId": "328a2814a4b6d582", "scanner": "scanner-primary", "fingerprint": "ef2b090398c08d00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f01d5213323632a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/rules?entityType=contact (apps/api/src/__tests__/business-rules.test.ts:50)"}, "properties": {"repobilityId": "3346d16fede8b7e4", "scanner": "scanner-primary", "fingerprint": "f01d5213323632a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-644c71a920ce78d0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:57)"}, "properties": {"repobilityId": "c2802c1c9ab061df", "scanner": "scanner-primary", "fingerprint": "644c71a920ce78d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd08041b66690eca", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:72)"}, "properties": {"repobilityId": "e5a3a95272e6a8c9", "scanner": "scanner-primary", "fingerprint": "dd08041b66690eca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bd43c0639ccf5173", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/api/src/__tests__/business-rules.test.ts:81)"}, "properties": {"repobilityId": "75be22e1d424a825", "scanner": "scanner-primary", "fingerprint": "bd43c0639ccf5173", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-594c05fc0d1bbf5b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules/validate (apps/api/src/__tests__/business-rules.test.ts:92)"}, "properties": {"repobilityId": "25ad92a6378ebc10", "scanner": "scanner-primary", "fingerprint": "594c05fc0d1bbf5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a3c97b7a61de673", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules/validate (apps/api/src/__tests__/business-rules.test.ts:104)"}, "properties": {"repobilityId": "c0325101d4120dab", "scanner": "scanner-primary", "fingerprint": "6a3c97b7a61de673", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2a3b005b6658b5e0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/rules/violations (apps/api/src/__tests__/business-rules.test.ts:115)"}, "properties": {"repobilityId": "2807faf9231e065a", "scanner": "scanner-primary", "fingerprint": "2a3b005b6658b5e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6c37833d6b613b5f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules/auto-fix (apps/api/src/__tests__/business-rules.test.ts:124)"}, "properties": {"repobilityId": "2d9fac8c5f4569ba", "scanner": "scanner-primary", "fingerprint": "6c37833d6b613b5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cb25acfd1e96be64", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules/auto-fix (apps/api/src/__tests__/business-rules.test.ts:135)"}, "properties": {"repobilityId": "4a5d0b06375ed16e", "scanner": "scanner-primary", "fingerprint": "cb25acfd1e96be64", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f1bfd4f0979d4a4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:23)"}, "properties": {"repobilityId": "32dfcd6cb4c0deb3", "scanner": "scanner-primary", "fingerprint": "8f1bfd4f0979d4a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d3dd3cf8efedb9f4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:36)"}, "properties": {"repobilityId": "ec711cef579e5fa0", "scanner": "scanner-primary", "fingerprint": "d3dd3cf8efedb9f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-62af9685bb4230fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:49)"}, "properties": {"repobilityId": "b0878994152e015a", "scanner": "scanner-primary", "fingerprint": "62af9685bb4230fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a71ddebb853b085d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/slos (apps/api/src/__tests__/slo-admin.test.ts:60)"}, "properties": {"repobilityId": "bc0655b656e28d77", "scanner": "scanner-primary", "fingerprint": "a71ddebb853b085d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0e4391d43275aa1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/slos/violations (apps/api/src/__tests__/slo-admin.test.ts:73)"}, "properties": {"repobilityId": "cfa068559cd94c5b", "scanner": "scanner-primary", "fingerprint": "b0e4391d43275aa1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa139157df12e34b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/slos/events (apps/api/src/__tests__/slo-admin.test.ts:86)"}, "properties": {"repobilityId": "77cb6a6cf5f7275a", "scanner": "scanner-primary", "fingerprint": "aa139157df12e34b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4743c6ab6429687f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/slos/events (apps/api/src/__tests__/slo-admin.test.ts:99)"}, "properties": {"repobilityId": "9198f094a7216632", "scanner": "scanner-primary", "fingerprint": "4743c6ab6429687f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6668807e4a33547e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/slos/detect (apps/api/src/__tests__/slo-admin.test.ts:112)"}, "properties": {"repobilityId": "ecb6d0ae43f3507f", "scanner": "scanner-primary", "fingerprint": "6668807e4a33547e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-304fac992e72deb8", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream (apps/api/src/__tests__/streaming-queries.test.ts:37)"}, "properties": {"repobilityId": "8d43cfc74e5d68ed", "scanner": "scanner-primary", "fingerprint": "304fac992e72deb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1836637e92566d51", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:42)"}, "properties": {"repobilityId": "1ea876cb467f2354", "scanner": "scanner-primary", "fingerprint": "1836637e92566d51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d02863b97af52bea", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:47)"}, "properties": {"repobilityId": "45fa747642d39413", "scanner": "scanner-primary", "fingerprint": "d02863b97af52bea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-175ac060ead1cd2f", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:52)"}, "properties": {"repobilityId": "de4e6dc76ec98b54", "scanner": "scanner-primary", "fingerprint": "175ac060ead1cd2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-83446d177780e160", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:59)"}, "properties": {"repobilityId": "32fd90f74ba88bda", "scanner": "scanner-primary", "fingerprint": "83446d177780e160", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-061c12767136173d", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:72)"}, "properties": {"repobilityId": "51f1576f769a72ac", "scanner": "scanner-primary", "fingerprint": "061c12767136173d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17f5dca0aa2657b4", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1 (apps/api/src/__tests__/streaming-queries.test.ts:83)"}, "properties": {"repobilityId": "9746aef688f4879b", "scanner": "scanner-primary", "fingerprint": "17f5dca0aa2657b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-823ec02cb7fdf7f4", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=500 (apps/api/src/__tests__/streaming-queries.test.ts:94)"}, "properties": {"repobilityId": "ad2236ea273038e9", "scanner": "scanner-primary", "fingerprint": "823ec02cb7fdf7f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9a64a881ab832a0", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=9999 (apps/api/src/__tests__/streaming-queries.test.ts:99)"}, "properties": {"repobilityId": "cea8961d27f24351", "scanner": "scanner-primary", "fingerprint": "c9a64a881ab832a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4fc5ba454b467dbb", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&entityTypes=contact,deal (apps/api/src/__tests__/streaming-queries.test.ts:105)"}, "properties": {"repobilityId": "572971f6803f13e2", "scanner": "scanner-primary", "fingerprint": "4fc5ba454b467dbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be13b21143882e06", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&maxTokensPerChunk=200 (apps/api/src/__tests__/streaming-queries.test.ts:116)"}, "properties": {"repobilityId": "a1c089468bda5a50", "scanner": "scanner-primary", "fingerprint": "be13b21143882e06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b67b52ee976080b8", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/stream?workspaceId=ws-1&contextBudget=100&maxTokensPerChunk=40 (apps/api/src/__tests__/streaming-queries.test.ts:129)"}, "properties": {"repobilityId": "76f19e474137a1d6", "scanner": "scanner-primary", "fingerprint": "b67b52ee976080b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0d2911df58278f34", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/sessions/non-existent (apps/api/src/__tests__/streaming-queries.test.ts:141)"}, "properties": {"repobilityId": "efc0a8f11b468c0a", "scanner": "scanner-primary", "fingerprint": "0d2911df58278f34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b346da7642dfec4", "level": "error", "message": {"text": "Dangling fetch: GET /streaming-queries/sessions/stream-uuid-123 (apps/api/src/__tests__/streaming-queries.test.ts:153)"}, "properties": {"repobilityId": "3d28c1bbf3fd3bd9", "scanner": "scanner-primary", "fingerprint": "5b346da7642dfec4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-31a8d43c28545f9d", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/c-1/forecast?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:27)"}, "properties": {"repobilityId": "7603c7905405fa12", "scanner": "scanner-primary", "fingerprint": "31a8d43c28545f9d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fe6d3da18b30ae7b", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/c-1/forecast?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:41)"}, "properties": {"repobilityId": "e884900ebc092065", "scanner": "scanner-primary", "fingerprint": "fe6d3da18b30ae7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d4293a8d47d46d98", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/c-1/forecast?days=14&workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:49)"}, "properties": {"repobilityId": "ed043ab004f2fccc", "scanner": "scanner-primary", "fingerprint": "d4293a8d47d46d98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ce7e155b109acc7", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/c-1/forecast-alerts?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:59)"}, "properties": {"repobilityId": "014e42acb2756f00", "scanner": "scanner-primary", "fingerprint": "2ce7e155b109acc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4290315253988f62", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/c-1/forecast-alerts?workspaceId=ws-1 (apps/api/src/__tests__/health-forecasts.test.ts:74)"}, "properties": {"repobilityId": "9e3fcc92a18e9ef7", "scanner": "scanner-primary", "fingerprint": "4290315253988f62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16502e71dc0450b6", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:46)"}, "properties": {"repobilityId": "c27655d87f492c41", "scanner": "scanner-primary", "fingerprint": "16502e71dc0450b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-400ec929aa22c0cc", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:64)"}, "properties": {"repobilityId": "f8687ce48fb84463", "scanner": "scanner-primary", "fingerprint": "400ec929aa22c0cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7bbcf255fa9c2180", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/suggest-mapping (apps/api/src/__tests__/field-mappings.test.ts:73)"}, "properties": {"repobilityId": "e53dad0d3adc35c7", "scanner": "scanner-primary", "fingerprint": "7bbcf255fa9c2180", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-66a59956a0171f38", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/hubspot/mapping-suggestions (apps/api/src/__tests__/field-mappings.test.ts:84)"}, "properties": {"repobilityId": "fbeef4a0ee17ddb7", "scanner": "scanner-primary", "fingerprint": "66a59956a0171f38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c40f39a9ace908c6", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/mapping-suggestions/confirm (apps/api/src/__tests__/field-mappings.test.ts:95)"}, "properties": {"repobilityId": "59e27bd6edfdffa6", "scanner": "scanner-primary", "fingerprint": "c40f39a9ace908c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8923e70a584af6a9", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/hubspot/mapping-suggestions/confirm (apps/api/src/__tests__/field-mappings.test.ts:111)"}, "properties": {"repobilityId": "db7bee27d9fa44d2", "scanner": "scanner-primary", "fingerprint": "8923e70a584af6a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8dc96cc9000c0f00", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:53)"}, "properties": {"repobilityId": "cd8a98b057702e6d", "scanner": "scanner-primary", "fingerprint": "8dc96cc9000c0f00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b28562f015a0668a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:60)"}, "properties": {"repobilityId": "4333ec6a6c5e0be9", "scanner": "scanner-primary", "fingerprint": "b28562f015a0668a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9bcb66ef2567cb04", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates?search=contacts (apps/api/src/__tests__/query-templates.test.ts:70)"}, "properties": {"repobilityId": "793921dea6b9eb90", "scanner": "scanner-primary", "fingerprint": "9bcb66ef2567cb04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5c2936e7e5c27ab", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:79)"}, "properties": {"repobilityId": "62f550c164b10b20", "scanner": "scanner-primary", "fingerprint": "b5c2936e7e5c27ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a370af8fd77a7a30", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:88)"}, "properties": {"repobilityId": "590693ed7bcd6fe1", "scanner": "scanner-primary", "fingerprint": "a370af8fd77a7a30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e430525e71456d6b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates (apps/api/src/__tests__/query-templates.test.ts:97)"}, "properties": {"repobilityId": "db9438f5a97bcad5", "scanner": "scanner-primary", "fingerprint": "e430525e71456d6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc539e980e949bbb", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/templates/tpl-1 (apps/api/src/__tests__/query-templates.test.ts:111)"}, "properties": {"repobilityId": "2a5397e6db76ca03", "scanner": "scanner-primary", "fingerprint": "cc539e980e949bbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7b70051be65e599", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/templates/tpl-1 (apps/api/src/__tests__/query-templates.test.ts:123)"}, "properties": {"repobilityId": "3adff390a7a87dcf", "scanner": "scanner-primary", "fingerprint": "c7b70051be65e599", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-47eabc7024bb8fcb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates/tpl-1/instantiate (apps/api/src/__tests__/query-templates.test.ts:134)"}, "properties": {"repobilityId": "29ac396e6edabcfb", "scanner": "scanner-primary", "fingerprint": "47eabc7024bb8fcb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9462984379f615c8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates/tpl-1/instantiate (apps/api/src/__tests__/query-templates.test.ts:145)"}, "properties": {"repobilityId": "c92023588e470fbc", "scanner": "scanner-primary", "fingerprint": "9462984379f615c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d030d1d9f08c3e73", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates/tpl-1/analytics (apps/api/src/__tests__/query-templates.test.ts:156)"}, "properties": {"repobilityId": "8c23fe6aefbcd959", "scanner": "scanner-primary", "fingerprint": "d030d1d9f08c3e73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f3025901722d0054", "level": "error", "message": {"text": "Dangling fetch: GET /query-analytics (apps/api/src/__tests__/query-analytics.test.ts:69)"}, "properties": {"repobilityId": "583da6191c451752", "scanner": "scanner-primary", "fingerprint": "f3025901722d0054", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a3f43f5c34780b15", "level": "error", "message": {"text": "Dangling fetch: GET /query-analytics/patterns (apps/api/src/__tests__/query-analytics.test.ts:82)"}, "properties": {"repobilityId": "9a94e0a5a5c995c1", "scanner": "scanner-primary", "fingerprint": "a3f43f5c34780b15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0302f163dfb2fd90", "level": "error", "message": {"text": "Dangling fetch: GET /governance/lineage?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:27)"}, "properties": {"repobilityId": "a54e6d7d438a9aba", "scanner": "scanner-primary", "fingerprint": "0302f163dfb2fd90", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cde526609def5017", "level": "error", "message": {"text": "Dangling fetch: GET /governance/lineage (apps/api/src/__tests__/governance-dashboard.test.ts:35)"}, "properties": {"repobilityId": "72fd2a1edcd5a9df", "scanner": "scanner-primary", "fingerprint": "cde526609def5017", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2557ddab21348b68", "level": "error", "message": {"text": "Dangling fetch: GET /governance/audit-summary?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:45)"}, "properties": {"repobilityId": "a3baa45f794edeaf", "scanner": "scanner-primary", "fingerprint": "2557ddab21348b68", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d984cace2aad5871", "level": "error", "message": {"text": "Dangling fetch: GET /governance/audit-summary?limit=10&offset=20 (apps/api/src/__tests__/governance-dashboard.test.ts:53)"}, "properties": {"repobilityId": "a6f4a25a0b117930", "scanner": "scanner-primary", "fingerprint": "d984cace2aad5871", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c99f740a7f22b0cc", "level": "error", "message": {"text": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:81)"}, "properties": {"repobilityId": "ec4457516166ad4b", "scanner": "scanner-primary", "fingerprint": "c99f740a7f22b0cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7004efa44e91bbe5", "level": "error", "message": {"text": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:93)"}, "properties": {"repobilityId": "ab4aecc260188a3c", "scanner": "scanner-primary", "fingerprint": "7004efa44e91bbe5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16f92ad52985e92d", "level": "error", "message": {"text": "Dangling fetch: POST /governance/retention-policies (apps/api/src/__tests__/governance-dashboard.test.ts:103)"}, "properties": {"repobilityId": "5dba844f41a2d642", "scanner": "scanner-primary", "fingerprint": "16f92ad52985e92d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1678b3755b4af21", "level": "error", "message": {"text": "Dangling fetch: GET /governance/retention-policies?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:115)"}, "properties": {"repobilityId": "330d1bfc895dd5de", "scanner": "scanner-primary", "fingerprint": "e1678b3755b4af21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c67dd83e4fc28bf", "level": "error", "message": {"text": "Dangling fetch: GET /governance/compliance-status?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:127)"}, "properties": {"repobilityId": "7a2a085c3c1d14b3", "scanner": "scanner-primary", "fingerprint": "8c67dd83e4fc28bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ce9a596c11a19795", "level": "error", "message": {"text": "Dangling fetch: GET /governance/compliance-status?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:153)"}, "properties": {"repobilityId": "e69ece94084ca4ab", "scanner": "scanner-primary", "fingerprint": "ce9a596c11a19795", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f03ca9293d2d6e44", "level": "error", "message": {"text": "Dangling fetch: PUT /governance/compliance-status (apps/api/src/__tests__/governance-dashboard.test.ts:164)"}, "properties": {"repobilityId": "73feb14baff8a1d9", "scanner": "scanner-primary", "fingerprint": "f03ca9293d2d6e44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5423c7f34e9ec5a5", "level": "error", "message": {"text": "Dangling fetch: PUT /governance/compliance-status (apps/api/src/__tests__/governance-dashboard.test.ts:174)"}, "properties": {"repobilityId": "c2b6217d04188f41", "scanner": "scanner-primary", "fingerprint": "5423c7f34e9ec5a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2512cb4195e68376", "level": "error", "message": {"text": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:198)"}, "properties": {"repobilityId": "87f7d1f6ca9d3fcd", "scanner": "scanner-primary", "fingerprint": "2512cb4195e68376", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-43fe2df224e6cd8a", "level": "error", "message": {"text": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:216)"}, "properties": {"repobilityId": "07c621d84c39918b", "scanner": "scanner-primary", "fingerprint": "43fe2df224e6cd8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9b6a323fcd3e5eb", "level": "error", "message": {"text": "Dangling fetch: POST /governance/dsr-queue (apps/api/src/__tests__/governance-dashboard.test.ts:231)"}, "properties": {"repobilityId": "e9e55c41d15b7f4b", "scanner": "scanner-primary", "fingerprint": "c9b6a323fcd3e5eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8a0d5da3096b6262", "level": "error", "message": {"text": "Dangling fetch: GET /governance/dsr-queue?workspaceId=ws-1 (apps/api/src/__tests__/governance-dashboard.test.ts:248)"}, "properties": {"repobilityId": "5d2f892d3f5f2ad9", "scanner": "scanner-primary", "fingerprint": "8a0d5da3096b6262", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2ce45f6ea34a89a", "level": "error", "message": {"text": "Dangling fetch: GET /governance/dsr-queue?workspaceId=ws-1&status=pending (apps/api/src/__tests__/governance-dashboard.test.ts:256)"}, "properties": {"repobilityId": "0ab601d290f74b36", "scanner": "scanner-primary", "fingerprint": "c2ce45f6ea34a89a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5d34760a8fc7145", "level": "error", "message": {"text": "Dangling fetch: PATCH /governance/dsr-queue/req-1/status (apps/api/src/__tests__/governance-dashboard.test.ts:264)"}, "properties": {"repobilityId": "f1f8264232c00d44", "scanner": "scanner-primary", "fingerprint": "f5d34760a8fc7145", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cd0349c1f78f9242", "level": "error", "message": {"text": "Dangling fetch: PATCH /governance/dsr-queue/req-1/status (apps/api/src/__tests__/governance-dashboard.test.ts:274)"}, "properties": {"repobilityId": "b266156af0d3f8f1", "scanner": "scanner-primary", "fingerprint": "cd0349c1f78f9242", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dc32e21498552e11", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/stream/config (apps/api/src/__tests__/mcp-streaming.test.ts:30)"}, "properties": {"repobilityId": "94f814b88472753b", "scanner": "scanner-primary", "fingerprint": "dc32e21498552e11", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-46a33cabc8ebdce7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:40)"}, "properties": {"repobilityId": "eb9449c8b4ab9d54", "scanner": "scanner-primary", "fingerprint": "46a33cabc8ebdce7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c5d17ba1a97ff42", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:51)"}, "properties": {"repobilityId": "bd9e9f9a9e81db6b", "scanner": "scanner-primary", "fingerprint": "8c5d17ba1a97ff42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d3db56d8a64fd864", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:62)"}, "properties": {"repobilityId": "f20c85ae09b16238", "scanner": "scanner-primary", "fingerprint": "d3db56d8a64fd864", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ebc8955cd0fabe19", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:73)"}, "properties": {"repobilityId": "5b35c181e8d5474d", "scanner": "scanner-primary", "fingerprint": "ebc8955cd0fabe19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f525884ad75ed2da", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:88)"}, "properties": {"repobilityId": "3648fe51249ead13", "scanner": "scanner-primary", "fingerprint": "f525884ad75ed2da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-87be74f8feb82c8b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:101)"}, "properties": {"repobilityId": "df0f2d1fae8ce825", "scanner": "scanner-primary", "fingerprint": "87be74f8feb82c8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7eeee5d83081572", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:114)"}, "properties": {"repobilityId": "b535568efed18bfb", "scanner": "scanner-primary", "fingerprint": "b7eeee5d83081572", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9511815509e1a162", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:126)"}, "properties": {"repobilityId": "fada98c9148c4e1a", "scanner": "scanner-primary", "fingerprint": "9511815509e1a162", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52892b29f25c24ec", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:135)"}, "properties": {"repobilityId": "068d3d4294f595fa", "scanner": "scanner-primary", "fingerprint": "52892b29f25c24ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5383194c0dd4314b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/api/src/__tests__/mcp-streaming.test.ts:145)"}, "properties": {"repobilityId": "1945ec9da878f99b", "scanner": "scanner-primary", "fingerprint": "5383194c0dd4314b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7eb6274ea3f09cce", "level": "error", "message": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:43)"}, "properties": {"repobilityId": "543fe6cc9c5baa3f", "scanner": "scanner-primary", "fingerprint": "7eb6274ea3f09cce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f2aa81bc1dbfd0b", "level": "error", "message": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:55)"}, "properties": {"repobilityId": "1bb01ddf05cf3f5f", "scanner": "scanner-primary", "fingerprint": "1f2aa81bc1dbfd0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-12ea8bf145fd2287", "level": "error", "message": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:64)"}, "properties": {"repobilityId": "7326f501027ae9d0", "scanner": "scanner-primary", "fingerprint": "12ea8bf145fd2287", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-479e0f4ed0e8c153", "level": "error", "message": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:73)"}, "properties": {"repobilityId": "57e2d83defb36987", "scanner": "scanner-primary", "fingerprint": "479e0f4ed0e8c153", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69409f5a5a609d91", "level": "error", "message": {"text": "Dangling fetch: POST /queries (apps/api/src/__tests__/queries.test.ts:86)"}, "properties": {"repobilityId": "5a8c53d70cd89939", "scanner": "scanner-primary", "fingerprint": "69409f5a5a609d91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a429f2e02ec77e96", "level": "error", "message": {"text": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:66)"}, "properties": {"repobilityId": "f8c84e2681d21230", "scanner": "scanner-primary", "fingerprint": "a429f2e02ec77e96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a599d4e09be1dc5a", "level": "error", "message": {"text": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:73)"}, "properties": {"repobilityId": "3291d4f78ff379f9", "scanner": "scanner-primary", "fingerprint": "a599d4e09be1dc5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-337e46c02b348a50", "level": "error", "message": {"text": "Dangling fetch: GET /lineage/deal:1 (apps/api/src/__tests__/lineage.test.ts:83)"}, "properties": {"repobilityId": "fbee6b3d2354825b", "scanner": "scanner-primary", "fingerprint": "337e46c02b348a50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3aa1b067e240e98f", "level": "error", "message": {"text": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:94)"}, "properties": {"repobilityId": "b6f3ae8a57aeaf13", "scanner": "scanner-primary", "fingerprint": "3aa1b067e240e98f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07c18ec2e2968c52", "level": "error", "message": {"text": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:108)"}, "properties": {"repobilityId": "d04e590b5ffe22e5", "scanner": "scanner-primary", "fingerprint": "07c18ec2e2968c52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5de03b572308fb9c", "level": "error", "message": {"text": "Dangling fetch: POST /lineage/deal:1/impact-analysis (apps/api/src/__tests__/lineage.test.ts:117)"}, "properties": {"repobilityId": "5d56b20abea7d7e5", "scanner": "scanner-primary", "fingerprint": "5de03b572308fb9c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b273fdb8c02178a3", "level": "error", "message": {"text": "Dangling fetch: GET /cc-1 (apps/api/src/__tests__/custom-connectors.test.ts:97)"}, "properties": {"repobilityId": "b91553a1eea43248", "scanner": "scanner-primary", "fingerprint": "b273fdb8c02178a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a01b2e83dfdd17a9", "level": "error", "message": {"text": "Dangling fetch: GET /cc-not-found (apps/api/src/__tests__/custom-connectors.test.ts:108)"}, "properties": {"repobilityId": "92b1df0a50b48ce8", "scanner": "scanner-primary", "fingerprint": "a01b2e83dfdd17a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-334c701090d923d8", "level": "error", "message": {"text": "Dangling fetch: DELETE /cc-1 (apps/api/src/__tests__/custom-connectors.test.ts:240)"}, "properties": {"repobilityId": "f347635f78409f3c", "scanner": "scanner-primary", "fingerprint": "334c701090d923d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-88e50ba0317346aa", "level": "error", "message": {"text": "Dangling fetch: DELETE /cc-not-mine (apps/api/src/__tests__/custom-connectors.test.ts:251)"}, "properties": {"repobilityId": "a4d5112078fd00a2", "scanner": "scanner-primary", "fingerprint": "88e50ba0317346aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2674af3aa8cd895e", "level": "error", "message": {"text": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:43)"}, "properties": {"repobilityId": "6d3f474ae9589d90", "scanner": "scanner-primary", "fingerprint": "2674af3aa8cd895e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be6ac792082cf9a7", "level": "error", "message": {"text": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:49)"}, "properties": {"repobilityId": "c1c2f52cd1f18d20", "scanner": "scanner-primary", "fingerprint": "be6ac792082cf9a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9df1e2920e29388", "level": "error", "message": {"text": "Dangling fetch: GET /dedup/candidates?limit=9999 (apps/api/src/__tests__/dedup-reconciliation.test.ts:56)"}, "properties": {"repobilityId": "97d37c73d1241d20", "scanner": "scanner-primary", "fingerprint": "f9df1e2920e29388", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6108bf65888d9cfd", "level": "error", "message": {"text": "Dangling fetch: GET /dedup/candidates (apps/api/src/__tests__/dedup-reconciliation.test.ts:62)"}, "properties": {"repobilityId": "bffe5003bb0e3202", "scanner": "scanner-primary", "fingerprint": "6108bf65888d9cfd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80be5f51e642b8b9", "level": "error", "message": {"text": "Dangling fetch: GET /dedup/metrics (apps/api/src/__tests__/dedup-reconciliation.test.ts:73)"}, "properties": {"repobilityId": "04427e81e964a8e3", "scanner": "scanner-primary", "fingerprint": "80be5f51e642b8b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1c962718f96b7c7", "level": "error", "message": {"text": "Dangling fetch: GET /dedup/metrics (apps/api/src/__tests__/dedup-reconciliation.test.ts:80)"}, "properties": {"repobilityId": "154795e2a98139b9", "scanner": "scanner-primary", "fingerprint": "e1c962718f96b7c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e665488c080e94ea", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/candidates/hubspot:contact:1/salesforce:contact:2/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:88)"}, "properties": {"repobilityId": "2a2432d5c4463b4a", "scanner": "scanner-primary", "fingerprint": "e665488c080e94ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-693d35fb2448ee17", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/candidates/a/b/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:99)"}, "properties": {"repobilityId": "f25487d3bce23ea9", "scanner": "scanner-primary", "fingerprint": "693d35fb2448ee17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-516e2c93780e0af3", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/candidates/a/b/decide (apps/api/src/__tests__/dedup-reconciliation.test.ts:109)"}, "properties": {"repobilityId": "068a8ec2023bba40", "scanner": "scanner-primary", "fingerprint": "516e2c93780e0af3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d6e67ea0c6af34da", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/merge (apps/api/src/__tests__/dedup-reconciliation.test.ts:124)"}, "properties": {"repobilityId": "946df4055eb5bece", "scanner": "scanner-primary", "fingerprint": "d6e67ea0c6af34da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5f48801b84418b5e", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/merge (apps/api/src/__tests__/dedup-reconciliation.test.ts:133)"}, "properties": {"repobilityId": "7339f068f01efb47", "scanner": "scanner-primary", "fingerprint": "5f48801b84418b5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f31871e4d3024201", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/merge/hubspot:contact:1/salesforce:contact:2/undo (apps/api/src/__tests__/dedup-reconciliation.test.ts:145)"}, "properties": {"repobilityId": "9f5d39f2ee3534c6", "scanner": "scanner-primary", "fingerprint": "f31871e4d3024201", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e5f0dee6f94cc6bb", "level": "error", "message": {"text": "Dangling fetch: POST /dedup/merge/a/b/undo (apps/api/src/__tests__/dedup-reconciliation.test.ts:154)"}, "properties": {"repobilityId": "fc0a38601fae32bb", "scanner": "scanner-primary", "fingerprint": "e5f0dee6f94cc6bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45dba388a6132ad4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies (apps/api/src/__tests__/metrics-anomalies.test.ts:61)"}, "properties": {"repobilityId": "ba4315c86dd723f2", "scanner": "scanner-primary", "fingerprint": "45dba388a6132ad4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-13326b3ec20341b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies (apps/api/src/__tests__/metrics-anomalies.test.ts:69)"}, "properties": {"repobilityId": "f09ff281658b3732", "scanner": "scanner-primary", "fingerprint": "13326b3ec20341b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09cb3f5128abac89", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/anomalies?includeAcknowledged=true (apps/api/src/__tests__/metrics-anomalies.test.ts:75)"}, "properties": {"repobilityId": "86434c5388b9e558", "scanner": "scanner-primary", "fingerprint": "09cb3f5128abac89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0853d890474a0664", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:93)"}, "properties": {"repobilityId": "d05e4741dad9f2aa", "scanner": "scanner-primary", "fingerprint": "0853d890474a0664", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17ab9c1159c46b02", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:103)"}, "properties": {"repobilityId": "46a429c0c96a05ba", "scanner": "scanner-primary", "fingerprint": "17ab9c1159c46b02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-507981b4659738d7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?lookbackDays=14&sensitivity=high (apps/api/src/__tests__/metrics-anomalies.test.ts:109)"}, "properties": {"repobilityId": "03b2d96970de9564", "scanner": "scanner-primary", "fingerprint": "507981b4659738d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af16a0c37cdfd28a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect?sensitivity=extreme (apps/api/src/__tests__/metrics-anomalies.test.ts:114)"}, "properties": {"repobilityId": "b12d390c450ed50e", "scanner": "scanner-primary", "fingerprint": "af16a0c37cdfd28a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6cf9cda338479632", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/detect (apps/api/src/__tests__/metrics-anomalies.test.ts:120)"}, "properties": {"repobilityId": "aac904a279f921fa", "scanner": "scanner-primary", "fingerprint": "6cf9cda338479632", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8452230c408571ea", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-anomalies.test.ts:138)"}, "properties": {"repobilityId": "7b661e7525093c36", "scanner": "scanner-primary", "fingerprint": "8452230c408571ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-54bbc801ddfe9ec3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-anomalies.test.ts:150)"}, "properties": {"repobilityId": "c4127f6ec84e49c7", "scanner": "scanner-primary", "fingerprint": "54bbc801ddfe9ec3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44ba7350443a52fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/${METRIC_ID}/anomalies/${ANOMALY_ID}/acknowledge (apps/api/src/__tests__/metrics-anomalies.test.ts:160)"}, "properties": {"repobilityId": "3367d030d27cca16", "scanner": "scanner-primary", "fingerprint": "44ba7350443a52fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84038d7d7b7eb071", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast (apps/api/src/__tests__/metrics-anomalies.test.ts:182)"}, "properties": {"repobilityId": "6a1904b88f2e7fbf", "scanner": "scanner-primary", "fingerprint": "84038d7d7b7eb071", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e73f5b0bd74a946c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast (apps/api/src/__tests__/metrics-anomalies.test.ts:190)"}, "properties": {"repobilityId": "6a3f2372780d0030", "scanner": "scanner-primary", "fingerprint": "e73f5b0bd74a946c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-146797ae80c74b41", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/metrics/${METRIC_ID}/forecast?daysAhead=999 (apps/api/src/__tests__/metrics-anomalies.test.ts:195)"}, "properties": {"repobilityId": "3072c02116a3fc1e", "scanner": "scanner-primary", "fingerprint": "146797ae80c74b41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52c3bf6a9bea493c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/2026-06-08 (apps/api/src/__tests__/temporal-cache.test.ts:55)"}, "properties": {"repobilityId": "8f8cd6d009feebf8", "scanner": "scanner-primary", "fingerprint": "52c3bf6a9bea493c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-749a2e4d1692730d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/not-a-date (apps/api/src/__tests__/temporal-cache.test.ts:62)"}, "properties": {"repobilityId": "61ffbc180eb3b324", "scanner": "scanner-primary", "fingerprint": "749a2e4d1692730d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a5d9562043f56ca1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/temporal/unknown-query/2026-06-01 (apps/api/src/__tests__/temporal-cache.test.ts:76)"}, "properties": {"repobilityId": "243a5c0fcfeeb2f1", "scanner": "scanner-primary", "fingerprint": "a5d9562043f56ca1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a9157ea824db7fc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/temporal/find%20contacts/2026-06-08 (apps/api/src/__tests__/temporal-cache.test.ts:90)"}, "properties": {"repobilityId": "355797e2fcf425c2", "scanner": "scanner-primary", "fingerprint": "6a9157ea824db7fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a41b5d3130972878", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/analytics (apps/api/src/__tests__/temporal-cache.test.ts:97)"}, "properties": {"repobilityId": "b4af244455f095f2", "scanner": "scanner-primary", "fingerprint": "a41b5d3130972878", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f78f546c97d1fa6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/analytics?intervalDays=14 (apps/api/src/__tests__/temporal-cache.test.ts:105)"}, "properties": {"repobilityId": "460cd6103728faf0", "scanner": "scanner-primary", "fingerprint": "6f78f546c97d1fa6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b980404ca729e1b3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/analytics?intervalDays=200 (apps/api/src/__tests__/temporal-cache.test.ts:110)"}, "properties": {"repobilityId": "f0ffb1531b502c0e", "scanner": "scanner-primary", "fingerprint": "b980404ca729e1b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-92ce3d0f6f68519b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:117)"}, "properties": {"repobilityId": "403783c18446fbc2", "scanner": "scanner-primary", "fingerprint": "92ce3d0f6f68519b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a3e2f93f8b58a25", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:129)"}, "properties": {"repobilityId": "0538df6d9355706d", "scanner": "scanner-primary", "fingerprint": "7a3e2f93f8b58a25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-daca0e9b0b0dfda1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/api/src/__tests__/temporal-cache.test.ts:138)"}, "properties": {"repobilityId": "2909dd29c47551db", "scanner": "scanner-primary", "fingerprint": "daca0e9b0b0dfda1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b6da1ffff24094ad", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/api/src/__tests__/search-quality.test.ts:39)"}, "properties": {"repobilityId": "6643bc33686cd273", "scanner": "scanner-primary", "fingerprint": "b6da1ffff24094ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-15395f5e53b63f14", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/api/src/__tests__/search-quality.test.ts:51)"}, "properties": {"repobilityId": "5a7a8f0b1eac4088", "scanner": "scanner-primary", "fingerprint": "15395f5e53b63f14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a33448161426ad1e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/test-sets (apps/api/src/__tests__/search-quality.test.ts:62)"}, "properties": {"repobilityId": "b5fc050b95753792", "scanner": "scanner-primary", "fingerprint": "a33448161426ad1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db89c5f9dcb57209", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/test-sets (apps/api/src/__tests__/search-quality.test.ts:77)"}, "properties": {"repobilityId": "c0519e83bd0c6998", "scanner": "scanner-primary", "fingerprint": "db89c5f9dcb57209", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ce3fe0d7d64ecc1c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:88)"}, "properties": {"repobilityId": "76b98ec259aa1223", "scanner": "scanner-primary", "fingerprint": "ce3fe0d7d64ecc1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4223a80e918065ee", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:99)"}, "properties": {"repobilityId": "cd95d1136cf92717", "scanner": "scanner-primary", "fingerprint": "4223a80e918065ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e67f51a4b3ebfc7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments?workspaceId=ws1 (apps/api/src/__tests__/search-quality.test.ts:110)"}, "properties": {"repobilityId": "da2d94ccaf1c9463", "scanner": "scanner-primary", "fingerprint": "5e67f51a4b3ebfc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8eaf017ea1938125", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments (apps/api/src/__tests__/search-quality.test.ts:117)"}, "properties": {"repobilityId": "847e76a2c700373c", "scanner": "scanner-primary", "fingerprint": "8eaf017ea1938125", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c652fc9c76a1db02", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/results (apps/api/src/__tests__/search-quality.test.ts:124)"}, "properties": {"repobilityId": "6d6da80755ed2898", "scanner": "scanner-primary", "fingerprint": "c652fc9c76a1db02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1c92428006f9bbe1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments/exp1/results (apps/api/src/__tests__/search-quality.test.ts:137)"}, "properties": {"repobilityId": "15e2c431bc5b1d6d", "scanner": "scanner-primary", "fingerprint": "1c92428006f9bbe1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3df213ae597a1ad", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/promote (apps/api/src/__tests__/search-quality.test.ts:147)"}, "properties": {"repobilityId": "fff4e0c71c08cd3c", "scanner": "scanner-primary", "fingerprint": "c3df213ae597a1ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af6ae080b998ce5b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/experiments/exp1/promote (apps/api/src/__tests__/search-quality.test.ts:158)"}, "properties": {"repobilityId": "69acb0a31ce362c3", "scanner": "scanner-primary", "fingerprint": "af6ae080b998ce5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea9d01305f0f3b2a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:57)"}, "properties": {"repobilityId": "b2095ef7da8bf643", "scanner": "scanner-primary", "fingerprint": "ea9d01305f0f3b2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ac19cafe41c8e84", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:70)"}, "properties": {"repobilityId": "091d84d8e17fe0df", "scanner": "scanner-primary", "fingerprint": "0ac19cafe41c8e84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-48b7261c373c65e7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:82)"}, "properties": {"repobilityId": "53e44e97d8f14132", "scanner": "scanner-primary", "fingerprint": "48b7261c373c65e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-407d3498f14050d9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:92)"}, "properties": {"repobilityId": "04dccab4d5b8b44f", "scanner": "scanner-primary", "fingerprint": "407d3498f14050d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2e0c595ce1e155b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:101)"}, "properties": {"repobilityId": "e5cb061598b1220e", "scanner": "scanner-primary", "fingerprint": "c2e0c595ce1e155b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dfd800af41ed811e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:111)"}, "properties": {"repobilityId": "fd58f8ddf7147e04", "scanner": "scanner-primary", "fingerprint": "dfd800af41ed811e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a7651fb479e750c0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:122)"}, "properties": {"repobilityId": "21d4d66fe69afd23", "scanner": "scanner-primary", "fingerprint": "a7651fb479e750c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6d1e52c904a394e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:134)"}, "properties": {"repobilityId": "a807e372a09e1c6a", "scanner": "scanner-primary", "fingerprint": "e6d1e52c904a394e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f3e56158b060f00", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/q-001/explain (apps/api/src/__tests__/query-explanation.test.ts:145)"}, "properties": {"repobilityId": "ae2e3c19f6f42f3c", "scanner": "scanner-primary", "fingerprint": "8f3e56158b060f00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af7afeb7aa7b52e5", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1?workspaceId=ws-1 (apps/api/src/__tests__/entities.test.ts:75)"}, "properties": {"repobilityId": "ea0394a253351b28", "scanner": "scanner-primary", "fingerprint": "af7afeb7aa7b52e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b564ef9274e6e67", "level": "error", "message": {"text": "Dangling fetch: GET /entities/nonexistent?workspaceId=ws-1 (apps/api/src/__tests__/entities.test.ts:83)"}, "properties": {"repobilityId": "517b5c9ab259c95d", "scanner": "scanner-primary", "fingerprint": "4b564ef9274e6e67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-89b41b2dd239085d", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1 (apps/api/src/__tests__/entities.test.ts:88)"}, "properties": {"repobilityId": "10f2ebda86cef5a4", "scanner": "scanner-primary", "fingerprint": "89b41b2dd239085d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e8fffab6921e954c", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:75)"}, "properties": {"repobilityId": "f7127c9126ce05ab", "scanner": "scanner-primary", "fingerprint": "e8fffab6921e954c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b985315970b6025", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:84)"}, "properties": {"repobilityId": "d458071776816e5e", "scanner": "scanner-primary", "fingerprint": "1b985315970b6025", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93e939a94d8eecad", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:91)"}, "properties": {"repobilityId": "223163e5b0c3e53a", "scanner": "scanner-primary", "fingerprint": "93e939a94d8eecad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-62fbba782197ac95", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/scans/${CONNECTOR_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:103)"}, "properties": {"repobilityId": "799e1c51dc31246b", "scanner": "scanner-primary", "fingerprint": "62fbba782197ac95", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b90d1ee9c7050d66", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:115)"}, "properties": {"repobilityId": "71018d8092a78189", "scanner": "scanner-primary", "fingerprint": "b90d1ee9c7050d66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08fd60cfb96ebb91", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:125)"}, "properties": {"repobilityId": "19bbe48fd748c09e", "scanner": "scanner-primary", "fingerprint": "08fd60cfb96ebb91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9b4946819660bae9", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/scans/${SCAN_ID} (apps/api/src/__tests__/data-quality-engine-routes.test.ts:132)"}, "properties": {"repobilityId": "1d95fbace08771f6", "scanner": "scanner-primary", "fingerprint": "9b4946819660bae9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-035fd9e10e986ba0", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/issues (apps/api/src/__tests__/data-quality-engine-routes.test.ts:141)"}, "properties": {"repobilityId": "186c9fe00a5686a5", "scanner": "scanner-primary", "fingerprint": "035fd9e10e986ba0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d4b8ef8266229ce", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/issues?severity=high (apps/api/src/__tests__/data-quality-engine-routes.test.ts:151)"}, "properties": {"repobilityId": "09a5c9b624f6a765", "scanner": "scanner-primary", "fingerprint": "5d4b8ef8266229ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-718b5dd6ac55017d", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/issues?issueType=type_mismatch (apps/api/src/__tests__/data-quality-engine-routes.test.ts:158)"}, "properties": {"repobilityId": "39f2c6747fa06790", "scanner": "scanner-primary", "fingerprint": "718b5dd6ac55017d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e433b34ad6b4464e", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/issues?severity=critical (apps/api/src/__tests__/data-quality-engine-routes.test.ts:164)"}, "properties": {"repobilityId": "bc7c07b5c7440608", "scanner": "scanner-primary", "fingerprint": "e433b34ad6b4464e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c1936facbc6d431", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/issues?limit=50 (apps/api/src/__tests__/data-quality-engine-routes.test.ts:172)"}, "properties": {"repobilityId": "0f5f12ac8f0924a3", "scanner": "scanner-primary", "fingerprint": "8c1936facbc6d431", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b562558167c909e", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:188)"}, "properties": {"repobilityId": "4b66edb2ba3963b9", "scanner": "scanner-primary", "fingerprint": "7b562558167c909e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1dfe5635874b5f10", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:199)"}, "properties": {"repobilityId": "d8c93c0387c70ee4", "scanner": "scanner-primary", "fingerprint": "1dfe5635874b5f10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d32323d6f1d6b4d7", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:208)"}, "properties": {"repobilityId": "840d548284857ddb", "scanner": "scanner-primary", "fingerprint": "d32323d6f1d6b4d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb888d1c956ff4ac", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:217)"}, "properties": {"repobilityId": "54c3f675fd395119", "scanner": "scanner-primary", "fingerprint": "bb888d1c956ff4ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ba9bc62eec1da50", "level": "error", "message": {"text": "Dangling fetch: POST /data-quality/issues/${ISSUE_ID}/resolve (apps/api/src/__tests__/data-quality-engine-routes.test.ts:226)"}, "properties": {"repobilityId": "ae05ab3b686eb72b", "scanner": "scanner-primary", "fingerprint": "6ba9bc62eec1da50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e28c056353b3b50", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:243)"}, "properties": {"repobilityId": "47a691aa381ff729", "scanner": "scanner-primary", "fingerprint": "3e28c056353b3b50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d33b6978299754a", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:266)"}, "properties": {"repobilityId": "fa6a7e2079ac1954", "scanner": "scanner-primary", "fingerprint": "6d33b6978299754a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7384fa658b257cd3", "level": "error", "message": {"text": "Dangling fetch: GET /data-quality/report (apps/api/src/__tests__/data-quality-engine-routes.test.ts:275)"}, "properties": {"repobilityId": "e24e184291012b8b", "scanner": "scanner-primary", "fingerprint": "7384fa658b257cd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c1b234c0828db14", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/index/status (apps/api/src/__tests__/index-status.test.ts:42)"}, "properties": {"repobilityId": "58679fb582030cb7", "scanner": "scanner-primary", "fingerprint": "3c1b234c0828db14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5fdeee620d909c43", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:53)"}, "properties": {"repobilityId": "cdbb6ac4c082c30a", "scanner": "scanner-primary", "fingerprint": "5fdeee620d909c43", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f17018a64555cfdc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:68)"}, "properties": {"repobilityId": "e8d5747d2938d046", "scanner": "scanner-primary", "fingerprint": "f17018a64555cfdc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71c23a4041a4c26d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/index/status?workspaceId=${WORKSPACE} (apps/api/src/__tests__/index-status.test.ts:81)"}, "properties": {"repobilityId": "41fe555137743bd3", "scanner": "scanner-primary", "fingerprint": "71c23a4041a4c26d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72aeb6d88beaea80", "level": "error", "message": {"text": "Dangling fetch: GET /graph/inferred-relationships (apps/api/src/__tests__/relationship-inference.test.ts:51)"}, "properties": {"repobilityId": "8b5c94f47924e477", "scanner": "scanner-primary", "fingerprint": "72aeb6d88beaea80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b1554eeb60e6455", "level": "error", "message": {"text": "Dangling fetch: GET /graph/inferred-relationships?topK=5 (apps/api/src/__tests__/relationship-inference.test.ts:61)"}, "properties": {"repobilityId": "dcacb89be183c662", "scanner": "scanner-primary", "fingerprint": "3b1554eeb60e6455", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c6a92f7517a8070f", "level": "error", "message": {"text": "Dangling fetch: POST /graph/inferred/rel1/confirm (apps/api/src/__tests__/relationship-inference.test.ts:70)"}, "properties": {"repobilityId": "1ceeef0158cbaa6e", "scanner": "scanner-primary", "fingerprint": "c6a92f7517a8070f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cec8f937a0d07982", "level": "error", "message": {"text": "Dangling fetch: POST /graph/inferred/rel1/reject (apps/api/src/__tests__/relationship-inference.test.ts:83)"}, "properties": {"repobilityId": "a78df918fd26d175", "scanner": "scanner-primary", "fingerprint": "cec8f937a0d07982", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b1b09bcd65b8d7d6", "level": "error", "message": {"text": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:95)"}, "properties": {"repobilityId": "148be52d45cc26fa", "scanner": "scanner-primary", "fingerprint": "b1b09bcd65b8d7d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a9ac95eec6883dc", "level": "error", "message": {"text": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:114)"}, "properties": {"repobilityId": "6704331152d97c05", "scanner": "scanner-primary", "fingerprint": "5a9ac95eec6883dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-86b130d7551310d0", "level": "error", "message": {"text": "Dangling fetch: POST /graph/score-relationship (apps/api/src/__tests__/relationship-inference.test.ts:123)"}, "properties": {"repobilityId": "8f0935bdb238c824", "scanner": "scanner-primary", "fingerprint": "86b130d7551310d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a2178e403b59a70d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/relationship-recommendations/entities/e1/suggestions (apps/api/src/__tests__/relationship-recommendations.test.ts:38)"}, "properties": {"repobilityId": "3c9ac6b1bb5a671a", "scanner": "scanner-primary", "fingerprint": "a2178e403b59a70d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25d2d44cc1649afc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/relationship-recommendations/entities/e99/suggestions (apps/api/src/__tests__/relationship-recommendations.test.ts:54)"}, "properties": {"repobilityId": "8634017310049bf6", "scanner": "scanner-primary", "fingerprint": "25d2d44cc1649afc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c71bff0c874a463", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations.test.ts:61)"}, "properties": {"repobilityId": "492e60dfc00f7acb", "scanner": "scanner-primary", "fingerprint": "3c71bff0c874a463", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e5ddb3a79cadf0b8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations.test.ts:72)"}, "properties": {"repobilityId": "b1e4e343670fcdd0", "scanner": "scanner-primary", "fingerprint": "e5ddb3a79cadf0b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59f089a7deaf2e8b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/auto-link (apps/api/src/__tests__/relationship-recommendations.test.ts:90)"}, "properties": {"repobilityId": "fab7a0082c8e8405", "scanner": "scanner-primary", "fingerprint": "59f089a7deaf2e8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d76d25315e37ae0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/accept (apps/api/src/__tests__/relationship-recommendations.test.ts:101)"}, "properties": {"repobilityId": "f7b30610cb5b1014", "scanner": "scanner-primary", "fingerprint": "3d76d25315e37ae0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-574178f834ed6ba6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/accept (apps/api/src/__tests__/relationship-recommendations.test.ts:112)"}, "properties": {"repobilityId": "b3c4510c9154675f", "scanner": "scanner-primary", "fingerprint": "574178f834ed6ba6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bff8c1d73e6ca034", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/feedback/deny (apps/api/src/__tests__/relationship-recommendations.test.ts:123)"}, "properties": {"repobilityId": "94f1041de96437f4", "scanner": "scanner-primary", "fingerprint": "bff8c1d73e6ca034", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2a7d2761884ed7b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/bulk-suggest (apps/api/src/__tests__/relationship-recommendations.test.ts:136)"}, "properties": {"repobilityId": "85d43765c3b5ecce", "scanner": "scanner-primary", "fingerprint": "2a7d2761884ed7b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6b393afd3486367e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/relationship-recommendations/bulk-suggest (apps/api/src/__tests__/relationship-recommendations.test.ts:147)"}, "properties": {"repobilityId": "fa888f81cdf5ee0b", "scanner": "scanner-primary", "fingerprint": "6b393afd3486367e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2342e330247357a0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/relationship-recommendations/metrics (apps/api/src/__tests__/relationship-recommendations.test.ts:158)"}, "properties": {"repobilityId": "166941f414442fe3", "scanner": "scanner-primary", "fingerprint": "2342e330247357a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0af1cb55b18749e4", "level": "error", "message": {"text": "Dangling fetch: GET /sessions/sess-1 (apps/api/src/__tests__/nl-query-sessions.test.ts:109)"}, "properties": {"repobilityId": "6ef36b0e58f2a82c", "scanner": "scanner-primary", "fingerprint": "0af1cb55b18749e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc220868c40b5eb4", "level": "error", "message": {"text": "Dangling fetch: GET /sessions/unknown (apps/api/src/__tests__/nl-query-sessions.test.ts:122)"}, "properties": {"repobilityId": "436004896b2508ca", "scanner": "scanner-primary", "fingerprint": "fc220868c40b5eb4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2ff4d83bd7d71a0", "level": "error", "message": {"text": "Dangling fetch: GET /sessions/sess-1 (apps/api/src/__tests__/nl-query-sessions.test.ts:134)"}, "properties": {"repobilityId": "2f382caf6ef5d3f5", "scanner": "scanner-primary", "fingerprint": "b2ff4d83bd7d71a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5487738c7ea0438", "level": "error", "message": {"text": "Dangling fetch: POST /sessions/sess-1/favorite (apps/api/src/__tests__/nl-query-sessions.test.ts:149)"}, "properties": {"repobilityId": "b207fbd8963847a4", "scanner": "scanner-primary", "fingerprint": "f5487738c7ea0438", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-922eb1d7f25adbb6", "level": "error", "message": {"text": "Dangling fetch: POST /sessions/unknown/favorite (apps/api/src/__tests__/nl-query-sessions.test.ts:164)"}, "properties": {"repobilityId": "4a37463b9a714cf1", "scanner": "scanner-primary", "fingerprint": "922eb1d7f25adbb6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-279c32c95d58aa83", "level": "error", "message": {"text": "Dangling fetch: DELETE /sessions/sess-1/question/0 (apps/api/src/__tests__/nl-query-sessions.test.ts:184)"}, "properties": {"repobilityId": "bba581881e0871e0", "scanner": "scanner-primary", "fingerprint": "279c32c95d58aa83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1690b8e0d3d2e96c", "level": "error", "message": {"text": "Dangling fetch: DELETE /sessions/unknown/question/0 (apps/api/src/__tests__/nl-query-sessions.test.ts:200)"}, "properties": {"repobilityId": "8d25f9533e695cab", "scanner": "scanner-primary", "fingerprint": "1690b8e0d3d2e96c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9dc7ad47407403c3", "level": "error", "message": {"text": "Dangling fetch: DELETE /sessions/sess-1/question/abc (apps/api/src/__tests__/nl-query-sessions.test.ts:209)"}, "properties": {"repobilityId": "988d0d19bb7c1661", "scanner": "scanner-primary", "fingerprint": "9dc7ad47407403c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d693156bde677162", "level": "error", "message": {"text": "Dangling fetch: DELETE /sessions/sess-1/question/${row.follow_up_questions.length + 5} (apps/api/src/__tests__/nl-query-sessions.test.ts:223)"}, "properties": {"repobilityId": "1d7ce44649113848", "scanner": "scanner-primary", "fingerprint": "d693156bde677162", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5acfa5ad8c510150", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/languages (apps/api/src/__tests__/sdk-downloads.test.ts:46)"}, "properties": {"repobilityId": "51492951d26c7a43", "scanner": "scanner-primary", "fingerprint": "5acfa5ad8c510150", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cba2e7df0d49135b", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/tools (apps/api/src/__tests__/sdk-downloads.test.ts:60)"}, "properties": {"repobilityId": "d5eb866dcc891959", "scanner": "scanner-primary", "fingerprint": "cba2e7df0d49135b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-11aaa80627631bdd", "level": "error", "message": {"text": "Dangling fetch: POST /sdks/generate/typescript (apps/api/src/__tests__/sdk-downloads.test.ts:80)"}, "properties": {"repobilityId": "7b7911e39c2448b2", "scanner": "scanner-primary", "fingerprint": "11aaa80627631bdd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56e357b75f7940d1", "level": "error", "message": {"text": "Dangling fetch: POST /sdks/generate/ruby (apps/api/src/__tests__/sdk-downloads.test.ts:93)"}, "properties": {"repobilityId": "9e9b291b5ce801d3", "scanner": "scanner-primary", "fingerprint": "56e357b75f7940d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf51da15ea8c57aa", "level": "error", "message": {"text": "Dangling fetch: POST /sdks/generate/python (apps/api/src/__tests__/sdk-downloads.test.ts:110)"}, "properties": {"repobilityId": "ae191245de43351c", "scanner": "scanner-primary", "fingerprint": "bf51da15ea8c57aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f85b11e09de848e6", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/jobs/job-1/status (apps/api/src/__tests__/sdk-downloads.test.ts:136)"}, "properties": {"repobilityId": "0da4aefc43af6b63", "scanner": "scanner-primary", "fingerprint": "f85b11e09de848e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5183edef65ce0c79", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/jobs/nonexistent/status (apps/api/src/__tests__/sdk-downloads.test.ts:144)"}, "properties": {"repobilityId": "1646aff3ac50cf7b", "scanner": "scanner-primary", "fingerprint": "5183edef65ce0c79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-85ce6d37302a921f", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/jobs?workspaceId=ws-1 (apps/api/src/__tests__/sdk-downloads.test.ts:154)"}, "properties": {"repobilityId": "e25822851d2d871d", "scanner": "scanner-primary", "fingerprint": "85ce6d37302a921f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95c77720857b51c0", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/preview/typescript (apps/api/src/__tests__/sdk-downloads.test.ts:166)"}, "properties": {"repobilityId": "d22a9a041c80f22d", "scanner": "scanner-primary", "fingerprint": "95c77720857b51c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-547704f7bd7c6eae", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/preview/python (apps/api/src/__tests__/sdk-downloads.test.ts:175)"}, "properties": {"repobilityId": "fc1918d51b7f8c49", "scanner": "scanner-primary", "fingerprint": "547704f7bd7c6eae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a7c97a7a821abe1b", "level": "error", "message": {"text": "Dangling fetch: GET /sdks/preview/rust (apps/api/src/__tests__/sdk-downloads.test.ts:181)"}, "properties": {"repobilityId": "a8f670561fd908d9", "scanner": "scanner-primary", "fingerprint": "a7c97a7a821abe1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e450cf370693a1c", "level": "error", "message": {"text": "Dangling fetch: POST /sessions/sess-1/refresh (apps/api/src/__tests__/sessions.test.ts:128)"}, "properties": {"repobilityId": "504471aa9cfda945", "scanner": "scanner-primary", "fingerprint": "1e450cf370693a1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-490b4eaf30dbfb00", "level": "error", "message": {"text": "Dangling fetch: POST /sessions/missing/refresh (apps/api/src/__tests__/sessions.test.ts:134)"}, "properties": {"repobilityId": "541b601b31be6672", "scanner": "scanner-primary", "fingerprint": "490b4eaf30dbfb00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-573f5b0b21ecafc5", "level": "error", "message": {"text": "Dangling fetch: DELETE /sessions/sess-1 (apps/api/src/__tests__/sessions.test.ts:141)"}, "properties": {"repobilityId": "fa47d76e854c08f8", "scanner": "scanner-primary", "fingerprint": "573f5b0b21ecafc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09b5c9f1711af64b", "level": "error", "message": {"text": "Dangling fetch: GET /sessions/devices?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:150)"}, "properties": {"repobilityId": "6ca16988bfcce0d5", "scanner": "scanner-primary", "fingerprint": "09b5c9f1711af64b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9d828569a7f8edac", "level": "error", "message": {"text": "Dangling fetch: POST /sessions/devices?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:159)"}, "properties": {"repobilityId": "c235b6c79bd758d4", "scanner": "scanner-primary", "fingerprint": "9d828569a7f8edac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-193cc8142d61a959", "level": "error", "message": {"text": "Dangling fetch: DELETE /sessions/devices/dev-1?userId=user-1 (apps/api/src/__tests__/sessions.test.ts:170)"}, "properties": {"repobilityId": "c1d07bdd2103b7f9", "scanner": "scanner-primary", "fingerprint": "193cc8142d61a959", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-febc6b0ed02a1565", "level": "error", "message": {"text": "Dangling fetch: GET /workspaces/ws-test/index-expansion-recommendations (apps/api/src/__tests__/query-learning.test.ts:148)"}, "properties": {"repobilityId": "401fbca4e4741570", "scanner": "scanner-primary", "fingerprint": "febc6b0ed02a1565", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc44ec63ccdeb3ca", "level": "error", "message": {"text": "Dangling fetch: GET /workspaces/ws-1/index-expansion-recommendations (apps/api/src/__tests__/query-learning.test.ts:157)"}, "properties": {"repobilityId": "197e40e7c4f6a7bb", "scanner": "scanner-primary", "fingerprint": "fc44ec63ccdeb3ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb7cc41d6b4be357", "level": "error", "message": {"text": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:124)"}, "properties": {"repobilityId": "49e723e75583fc0f", "scanner": "scanner-primary", "fingerprint": "eb7cc41d6b4be357", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6be24871d69c3ead", "level": "error", "message": {"text": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:134)"}, "properties": {"repobilityId": "c6b7ce5723f476d3", "scanner": "scanner-primary", "fingerprint": "6be24871d69c3ead", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-490c7e033b507d3a", "level": "error", "message": {"text": "Dangling fetch: GET /billing/usage (apps/api/src/__tests__/billing.test.ts:140)"}, "properties": {"repobilityId": "2bb17ce99edf49ab", "scanner": "scanner-primary", "fingerprint": "490c7e033b507d3a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f7011c5bd90d68c", "level": "error", "message": {"text": "Dangling fetch: GET /billing/tier (apps/api/src/__tests__/billing.test.ts:147)"}, "properties": {"repobilityId": "89275bb149382dcf", "scanner": "scanner-primary", "fingerprint": "0f7011c5bd90d68c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-64f4864b9399fa08", "level": "error", "message": {"text": "Dangling fetch: GET /billing/tier (apps/api/src/__tests__/billing.test.ts:155)"}, "properties": {"repobilityId": "dc399bc1ffe988a3", "scanner": "scanner-primary", "fingerprint": "64f4864b9399fa08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a552ab723de5b37c", "level": "error", "message": {"text": "Dangling fetch: GET /billing/periods (apps/api/src/__tests__/billing.test.ts:162)"}, "properties": {"repobilityId": "af2615c4fb774931", "scanner": "scanner-primary", "fingerprint": "a552ab723de5b37c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ae62769ae31ce7b0", "level": "error", "message": {"text": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:172)"}, "properties": {"repobilityId": "fd01ab222cf84437", "scanner": "scanner-primary", "fingerprint": "ae62769ae31ce7b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56ac36b476b387f4", "level": "error", "message": {"text": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:183)"}, "properties": {"repobilityId": "b7d7bc6e12bfb86c", "scanner": "scanner-primary", "fingerprint": "56ac36b476b387f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-923c91ae36f3081f", "level": "error", "message": {"text": "Dangling fetch: POST /billing/events (apps/api/src/__tests__/billing.test.ts:193)"}, "properties": {"repobilityId": "58a52bee0f1fef4a", "scanner": "scanner-primary", "fingerprint": "923c91ae36f3081f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-66eb7615b8547f88", "level": "error", "message": {"text": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:204)"}, "properties": {"repobilityId": "c27815a8511a79c2", "scanner": "scanner-primary", "fingerprint": "66eb7615b8547f88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-06497c9a13c671e2", "level": "error", "message": {"text": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:216)"}, "properties": {"repobilityId": "51d1f14e70fcaa28", "scanner": "scanner-primary", "fingerprint": "06497c9a13c671e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1cd39fcadfb2e333", "level": "error", "message": {"text": "Dangling fetch: GET /billing/connectors (apps/api/src/__tests__/billing.test.ts:234)"}, "properties": {"repobilityId": "6c5ce6d0f2a03203", "scanner": "scanner-primary", "fingerprint": "1cd39fcadfb2e333", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ffe1c16c46676af6", "level": "error", "message": {"text": "Dangling fetch: GET /billing/connectors?periodStart=not-a-date (apps/api/src/__tests__/billing.test.ts:239)"}, "properties": {"repobilityId": "5cbd236cecf836aa", "scanner": "scanner-primary", "fingerprint": "ffe1c16c46676af6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f4b7495d7e972d1", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:57)"}, "properties": {"repobilityId": "78fcc2efe319a383", "scanner": "scanner-primary", "fingerprint": "1f4b7495d7e972d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8a326866d83d28f4", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:66)"}, "properties": {"repobilityId": "5bb0448f1345d731", "scanner": "scanner-primary", "fingerprint": "8a326866d83d28f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af6f1da00a9d1e21", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/events (apps/api/src/__tests__/entity-audit.test.ts:74)"}, "properties": {"repobilityId": "51f86de3fdbca013", "scanner": "scanner-primary", "fingerprint": "af6f1da00a9d1e21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-880442763ba59785", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/entities/eid-1/history (apps/api/src/__tests__/entity-audit.test.ts:86)"}, "properties": {"repobilityId": "8c2a0075c3385038", "scanner": "scanner-primary", "fingerprint": "880442763ba59785", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-728f29f931b8c93d", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/entities/eid-1/history?from=2026-01-01&to=2026-01-31 (apps/api/src/__tests__/entity-audit.test.ts:96)"}, "properties": {"repobilityId": "1cde6f490ebbd06c", "scanner": "scanner-primary", "fingerprint": "728f29f931b8c93d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da4b72527b588a74", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/entities/eid-1/fields/stage (apps/api/src/__tests__/entity-audit.test.ts:111)"}, "properties": {"repobilityId": "533b1136a890cc0c", "scanner": "scanner-primary", "fingerprint": "da4b72527b588a74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8413db249ffeebaa", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/anomalies (apps/api/src/__tests__/entity-audit.test.ts:125)"}, "properties": {"repobilityId": "1ca648d1a50fa803", "scanner": "scanner-primary", "fingerprint": "8413db249ffeebaa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a929d23a7a78f767", "level": "error", "message": {"text": "Dangling fetch: GET /entity-audit/anomalies?lookbackDays=999 (apps/api/src/__tests__/entity-audit.test.ts:134)"}, "properties": {"repobilityId": "83dca361f3c48775", "scanner": "scanner-primary", "fingerprint": "a929d23a7a78f767", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-26944ed34eb5d7e7", "level": "error", "message": {"text": "Dangling fetch: POST /entity-audit/entities/eid-1/track (apps/api/src/__tests__/entity-audit.test.ts:146)"}, "properties": {"repobilityId": "277357468725a52e", "scanner": "scanner-primary", "fingerprint": "26944ed34eb5d7e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1768bf51be037d78", "level": "error", "message": {"text": "Dangling fetch: POST /entity-audit/entities/eid-1/track (apps/api/src/__tests__/entity-audit.test.ts:163)"}, "properties": {"repobilityId": "562a4da459d9cc75", "scanner": "scanner-primary", "fingerprint": "1768bf51be037d78", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-90afc346f98bfa78", "level": "error", "message": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:63)"}, "properties": {"repobilityId": "6ef18e671b968951", "scanner": "scanner-primary", "fingerprint": "90afc346f98bfa78", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f63297b963aa0b4", "level": "error", "message": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:73)"}, "properties": {"repobilityId": "f91e76a23ee1f7e7", "scanner": "scanner-primary", "fingerprint": "0f63297b963aa0b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bec8ddae621aa441", "level": "error", "message": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:92)"}, "properties": {"repobilityId": "ba7e6309d913e1ff", "scanner": "scanner-primary", "fingerprint": "bec8ddae621aa441", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a752f117bdb7f63e", "level": "error", "message": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:102)"}, "properties": {"repobilityId": "e0dba53536a96ae2", "scanner": "scanner-primary", "fingerprint": "a752f117bdb7f63e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7bb4eda8a1a1817f", "level": "error", "message": {"text": "Dangling fetch: POST /data/import (apps/api/src/__tests__/data-import-export.test.ts:124)"}, "properties": {"repobilityId": "326553ece1280121", "scanner": "scanner-primary", "fingerprint": "7bb4eda8a1a1817f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6350581a7c253e47", "level": "error", "message": {"text": "Dangling fetch: GET /data/export (apps/api/src/__tests__/data-import-export.test.ts:140)"}, "properties": {"repobilityId": "c70d76cd61f2d638", "scanner": "scanner-primary", "fingerprint": "6350581a7c253e47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0034e3f3d11a6369", "level": "error", "message": {"text": "Dangling fetch: GET /data/export?workspaceId=ws-1&format=json (apps/api/src/__tests__/data-import-export.test.ts:146)"}, "properties": {"repobilityId": "a98eb41268cde895", "scanner": "scanner-primary", "fingerprint": "0034e3f3d11a6369", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e5c9ea22209de8f8", "level": "error", "message": {"text": "Dangling fetch: GET /data/export?workspaceId=ws-1&format=csv (apps/api/src/__tests__/data-import-export.test.ts:153)"}, "properties": {"repobilityId": "f8404a8eab272fe0", "scanner": "scanner-primary", "fingerprint": "e5c9ea22209de8f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9cdc47ef3c58b243", "level": "error", "message": {"text": "Dangling fetch: GET /data/export?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:160)"}, "properties": {"repobilityId": "77b8ca922accdb98", "scanner": "scanner-primary", "fingerprint": "9cdc47ef3c58b243", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b86509db30f5a85", "level": "error", "message": {"text": "Dangling fetch: POST /data/import/schema (apps/api/src/__tests__/data-import-export.test.ts:171)"}, "properties": {"repobilityId": "2890a20bfcf8286e", "scanner": "scanner-primary", "fingerprint": "1b86509db30f5a85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-78b347256b5c742b", "level": "error", "message": {"text": "Dangling fetch: POST /data/import/schema (apps/api/src/__tests__/data-import-export.test.ts:181)"}, "properties": {"repobilityId": "bc158e4fc7a4e7cc", "scanner": "scanner-primary", "fingerprint": "78b347256b5c742b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e8eacd4c933da10", "level": "error", "message": {"text": "Dangling fetch: GET /data/jobs (apps/api/src/__tests__/data-import-export.test.ts:197)"}, "properties": {"repobilityId": "7358e810edf22151", "scanner": "scanner-primary", "fingerprint": "5e8eacd4c933da10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d7d1528b3036c5b", "level": "error", "message": {"text": "Dangling fetch: GET /data/jobs?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:204)"}, "properties": {"repobilityId": "646d58fd9a50607d", "scanner": "scanner-primary", "fingerprint": "3d7d1528b3036c5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b101613aa652ed5c", "level": "error", "message": {"text": "Dangling fetch: GET /data/jobs?workspaceId=ws-1 (apps/api/src/__tests__/data-import-export.test.ts:226)"}, "properties": {"repobilityId": "064c7a5107451656", "scanner": "scanner-primary", "fingerprint": "b101613aa652ed5c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-32328b0798355276", "level": "error", "message": {"text": "Dangling fetch: DELETE /rules/rule-1 (apps/api/src/__tests__/alerts.test.ts:119)"}, "properties": {"repobilityId": "2789de8a8f8787a5", "scanner": "scanner-primary", "fingerprint": "32328b0798355276", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed30a18f620adbf9", "level": "error", "message": {"text": "Dangling fetch: GET /compliance/report/gdpr (apps/api/src/__tests__/compliance.test.ts:34)"}, "properties": {"repobilityId": "6df5e7728f641b42", "scanner": "scanner-primary", "fingerprint": "ed30a18f620adbf9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa0ec39835bce1b2", "level": "error", "message": {"text": "Dangling fetch: GET /compliance/report/fisma (apps/api/src/__tests__/compliance.test.ts:40)"}, "properties": {"repobilityId": "4cb10df53754e0da", "scanner": "scanner-primary", "fingerprint": "aa0ec39835bce1b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef264a76f084f141", "level": "error", "message": {"text": "Dangling fetch: GET /compliance/report/gdpr (apps/api/src/__tests__/compliance.test.ts:51)"}, "properties": {"repobilityId": "bf00d7ec846f0708", "scanner": "scanner-primary", "fingerprint": "ef264a76f084f141", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f7020b5a44aa04d0", "level": "error", "message": {"text": "Dangling fetch: GET /compliance/report/hipaa (apps/api/src/__tests__/compliance.test.ts:63)"}, "properties": {"repobilityId": "2dc8363cbf16e874", "scanner": "scanner-primary", "fingerprint": "f7020b5a44aa04d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-148b7e61a7f94698", "level": "error", "message": {"text": "Dangling fetch: POST /compliance/dsr (apps/api/src/__tests__/compliance.test.ts:73)"}, "properties": {"repobilityId": "5e9d985facfb63ce", "scanner": "scanner-primary", "fingerprint": "148b7e61a7f94698", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a20f3e83fb4d1955", "level": "error", "message": {"text": "Dangling fetch: POST /compliance/dsr (apps/api/src/__tests__/compliance.test.ts:86)"}, "properties": {"repobilityId": "2d5f22fdbe50a521", "scanner": "scanner-primary", "fingerprint": "a20f3e83fb4d1955", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a35ea901d724e7d", "level": "error", "message": {"text": "Dangling fetch: GET /compliance/audit-log (apps/api/src/__tests__/compliance.test.ts:103)"}, "properties": {"repobilityId": "13828247ab541929", "scanner": "scanner-primary", "fingerprint": "3a35ea901d724e7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a3d3053b8d97aee1", "level": "error", "message": {"text": "Dangling fetch: GET /compliance/alerts (apps/api/src/__tests__/compliance.test.ts:118)"}, "properties": {"repobilityId": "e254fae229db6e7c", "scanner": "scanner-primary", "fingerprint": "a3d3053b8d97aee1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d36849894e11f9a7", "level": "error", "message": {"text": "Dangling fetch: POST /compliance/alerts/alert-1/acknowledge (apps/api/src/__tests__/compliance.test.ts:132)"}, "properties": {"repobilityId": "950d3ae400e2c4bd", "scanner": "scanner-primary", "fingerprint": "d36849894e11f9a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e491c86fd77fb54c", "level": "error", "message": {"text": "Dangling fetch: PUT /sub-1 (apps/api/src/__tests__/entity-change-subscriptions.test.ts:127)"}, "properties": {"repobilityId": "451eb1b7a691b1cc", "scanner": "scanner-primary", "fingerprint": "e491c86fd77fb54c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a5abd798d2c8db0", "level": "error", "message": {"text": "Dangling fetch: PUT /nonexistent (apps/api/src/__tests__/entity-change-subscriptions.test.ts:138)"}, "properties": {"repobilityId": "887678255d0481d2", "scanner": "scanner-primary", "fingerprint": "0a5abd798d2c8db0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-074bbc496dfb77d6", "level": "error", "message": {"text": "Dangling fetch: DELETE /sub-1 (apps/api/src/__tests__/entity-change-subscriptions.test.ts:153)"}, "properties": {"repobilityId": "b305c4782d8fa5f0", "scanner": "scanner-primary", "fingerprint": "074bbc496dfb77d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf5d3c938db5fe32", "level": "error", "message": {"text": "Dangling fetch: DELETE /unknown (apps/api/src/__tests__/entity-change-subscriptions.test.ts:163)"}, "properties": {"repobilityId": "e9200b3cd12353bf", "scanner": "scanner-primary", "fingerprint": "bf5d3c938db5fe32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db570ddde117ad5d", "level": "error", "message": {"text": "Dangling fetch: GET /sub-1/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:182)"}, "properties": {"repobilityId": "d68a5f790924b5d8", "scanner": "scanner-primary", "fingerprint": "db570ddde117ad5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-075f2b68c6a0882b", "level": "error", "message": {"text": "Dangling fetch: GET /unknown/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:194)"}, "properties": {"repobilityId": "27243fbff81bef62", "scanner": "scanner-primary", "fingerprint": "075f2b68c6a0882b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0aaf4de00486b627", "level": "error", "message": {"text": "Dangling fetch: GET /sub-1/events (apps/api/src/__tests__/entity-change-subscriptions.test.ts:208)"}, "properties": {"repobilityId": "3f8c149c523df2e8", "scanner": "scanner-primary", "fingerprint": "0aaf4de00486b627", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4739cdc212f14cdf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:48)"}, "properties": {"repobilityId": "130c0a7390910683", "scanner": "scanner-primary", "fingerprint": "4739cdc212f14cdf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7ca28d2003863fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:59)"}, "properties": {"repobilityId": "1c907377812a8c88", "scanner": "scanner-primary", "fingerprint": "c7ca28d2003863fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3240149b43a56f4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:70)"}, "properties": {"repobilityId": "9e9ff97f1f9f1ed0", "scanner": "scanner-primary", "fingerprint": "b3240149b43a56f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a956ba36ca06d316", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/config-from-language (apps/api/src/__tests__/workspace-config.test.ts:84)"}, "properties": {"repobilityId": "d8e8f65abbe4185a", "scanner": "scanner-primary", "fingerprint": "a956ba36ca06d316", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b261e790e331b62b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/nlp-configs (apps/api/src/__tests__/workspace-config.test.ts:98)"}, "properties": {"repobilityId": "6f70f51a7382218e", "scanner": "scanner-primary", "fingerprint": "b261e790e331b62b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d81769646c35cead", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:105)"}, "properties": {"repobilityId": "eab44fccad64c8ff", "scanner": "scanner-primary", "fingerprint": "d81769646c35cead", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d0845d7ebe5e585d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/nlp-configs?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:115)"}, "properties": {"repobilityId": "bbbfc5f6ed27fd1b", "scanner": "scanner-primary", "fingerprint": "d0845d7ebe5e585d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da8ee4a85af118ad", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/cfg-1/approve (apps/api/src/__tests__/workspace-config.test.ts:123)"}, "properties": {"repobilityId": "d18d58395f2460ba", "scanner": "scanner-primary", "fingerprint": "da8ee4a85af118ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a7d3b1e52f18eec", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/missing/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:134)"}, "properties": {"repobilityId": "6a4edbf4cf7e4f66", "scanner": "scanner-primary", "fingerprint": "6a7d3b1e52f18eec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c064601c33c99264", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/nlp-configs/cfg-1/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-config.test.ts:146)"}, "properties": {"repobilityId": "6ff4d422d616cdef", "scanner": "scanner-primary", "fingerprint": "c064601c33c99264", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b85fae54212f28d9", "level": "error", "message": {"text": "Dangling fetch: GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:54)"}, "properties": {"repobilityId": "fc06bcaacc6d292e", "scanner": "scanner-primary", "fingerprint": "b85fae54212f28d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e8a96cbf32a64eb", "level": "error", "message": {"text": "Dangling fetch: GET /workspaces/ws-1/costs?from=bad-date&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:61)"}, "properties": {"repobilityId": "df34a50ce3056fb9", "scanner": "scanner-primary", "fingerprint": "1e8a96cbf32a64eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7fe2abac915b45b1", "level": "error", "message": {"text": "Dangling fetch: GET /workspaces/ws-1/costs?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:67)"}, "properties": {"repobilityId": "ef2c9dc7f112a22d", "scanner": "scanner-primary", "fingerprint": "7fe2abac915b45b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef5006a26734c6b1", "level": "error", "message": {"text": "Dangling fetch: GET /workspaces/ws-1/cost-breakdown?from=2026-01-01&to=2026-06-30 (apps/api/src/__tests__/workspace-costs.test.ts:78)"}, "properties": {"repobilityId": "1ac28ddd4e6e7a26", "scanner": "scanner-primary", "fingerprint": "ef5006a26734c6b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fb4f722a72b0f04", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/e1/matches (apps/api/src/__tests__/entity-reconciliation.test.ts:37)"}, "properties": {"repobilityId": "b46ff05ba22cecaf", "scanner": "scanner-primary", "fingerprint": "9fb4f722a72b0f04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-04a68393710a23b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/e99/matches (apps/api/src/__tests__/entity-reconciliation.test.ts:53)"}, "properties": {"repobilityId": "e026ce50fb7cc0c5", "scanner": "scanner-primary", "fingerprint": "04a68393710a23b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-03cfe15249f951b6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/e1/suggest-reconciliation (apps/api/src/__tests__/entity-reconciliation.test.ts:60)"}, "properties": {"repobilityId": "f9643ff985091074", "scanner": "scanner-primary", "fingerprint": "03cfe15249f951b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-43a8f074125f8d80", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/e1/suggest-reconciliation (apps/api/src/__tests__/entity-reconciliation.test.ts:71)"}, "properties": {"repobilityId": "3a6befa9d5282767", "scanner": "scanner-primary", "fingerprint": "43a8f074125f8d80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5104f1012d50d683", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/e1/reconciliation-decision (apps/api/src/__tests__/entity-reconciliation.test.ts:82)"}, "properties": {"repobilityId": "d5e08d041261bd83", "scanner": "scanner-primary", "fingerprint": "5104f1012d50d683", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cdc0baf5c929b527", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/e1/reconciliation-decision (apps/api/src/__tests__/entity-reconciliation.test.ts:93)"}, "properties": {"repobilityId": "6e759cee660d937b", "scanner": "scanner-primary", "fingerprint": "cdc0baf5c929b527", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-60509cfd01fa8c83", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/reconciliation/score (apps/api/src/__tests__/entity-reconciliation.test.ts:104)"}, "properties": {"repobilityId": "55f979c6215e6ee6", "scanner": "scanner-primary", "fingerprint": "60509cfd01fa8c83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3aad7bba9965e749", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/reconciliation/pending (apps/api/src/__tests__/entity-reconciliation.test.ts:117)"}, "properties": {"repobilityId": "30517b3b226c19fd", "scanner": "scanner-primary", "fingerprint": "3aad7bba9965e749", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-042e047f81ee75be", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/auto-tools (apps/api/src/__tests__/mcp-auto-tools.test.ts:75)"}, "properties": {"repobilityId": "0d2ef47be15c8a1c", "scanner": "scanner-primary", "fingerprint": "042e047f81ee75be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a2e888e08b30bb01", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/auto-tools/generate (apps/api/src/__tests__/mcp-auto-tools.test.ts:99)"}, "properties": {"repobilityId": "9d94f5ae5bf1d8f0", "scanner": "scanner-primary", "fingerprint": "a2e888e08b30bb01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9a2e3cdd771e5393", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/auto-tools/generate (apps/api/src/__tests__/mcp-auto-tools.test.ts:110)"}, "properties": {"repobilityId": "31466831355d5ac6", "scanner": "scanner-primary", "fingerprint": "9a2e3cdd771e5393", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-909e3e3f70c610ac", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/auto-tools/query-hubspot-contact/schema (apps/api/src/__tests__/mcp-auto-tools.test.ts:121)"}, "properties": {"repobilityId": "0268a2209c38c7d6", "scanner": "scanner-primary", "fingerprint": "909e3e3f70c610ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-229a04789c6ae4ca", "level": "error", "message": {"text": "Dangling fetch: GET /mcp/auto-tools/unknown-tool/schema (apps/api/src/__tests__/mcp-auto-tools.test.ts:130)"}, "properties": {"repobilityId": "d81deeb6f67ff2d5", "scanner": "scanner-primary", "fingerprint": "229a04789c6ae4ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-012a24d041c0459c", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/auto-tools/query-hubspot-contact/test (apps/api/src/__tests__/mcp-auto-tools.test.ts:139)"}, "properties": {"repobilityId": "224cdc7e0af6dae3", "scanner": "scanner-primary", "fingerprint": "012a24d041c0459c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-21231c6d5ac46f82", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/auto-tools/query-hubspot-contact/test (apps/api/src/__tests__/mcp-auto-tools.test.ts:150)"}, "properties": {"repobilityId": "c1d15cd2655e7616", "scanner": "scanner-primary", "fingerprint": "21231c6d5ac46f82", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d85dbf9de97acc8d", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/auto-tools/version (apps/api/src/__tests__/mcp-auto-tools.test.ts:161)"}, "properties": {"repobilityId": "a21a80329f0ac6ba", "scanner": "scanner-primary", "fingerprint": "d85dbf9de97acc8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7d29492abb74526", "level": "error", "message": {"text": "Dangling fetch: POST /mcp/auto-tools/version (apps/api/src/__tests__/mcp-auto-tools.test.ts:176)"}, "properties": {"repobilityId": "a9ce6c913e89d7c5", "scanner": "scanner-primary", "fingerprint": "c7d29492abb74526", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7116cb4b7ac7f1ba", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies (apps/api/src/__tests__/retention-policies.test.ts:43)"}, "properties": {"repobilityId": "5a18b25738e00087", "scanner": "scanner-primary", "fingerprint": "7116cb4b7ac7f1ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa5d14da271f64e7", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/retention-policies/contact (apps/api/src/__tests__/retention-policies.test.ts:52)"}, "properties": {"repobilityId": "e997026796f67aa8", "scanner": "scanner-primary", "fingerprint": "aa5d14da271f64e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3890291667d0be1", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/retention-policies/contact (apps/api/src/__tests__/retention-policies.test.ts:63)"}, "properties": {"repobilityId": "2639d4f00de36f3a", "scanner": "scanner-primary", "fingerprint": "c3890291667d0be1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8bb7b6c1c5acc629", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities (apps/api/src/__tests__/retention-policies.test.ts:74)"}, "properties": {"repobilityId": "73731833df0628e8", "scanner": "scanner-primary", "fingerprint": "8bb7b6c1c5acc629", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-115229513feabeb8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities?entityType=contact (apps/api/src/__tests__/retention-policies.test.ts:81)"}, "properties": {"repobilityId": "28e6e74eaf958370", "scanner": "scanner-primary", "fingerprint": "115229513feabeb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-baca2c654e71b211", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/archived-entities/e1/restore (apps/api/src/__tests__/retention-policies.test.ts:88)"}, "properties": {"repobilityId": "81aa4b1b6ccec708", "scanner": "scanner-primary", "fingerprint": "baca2c654e71b211", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08e258df0ca6c1af", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/entities/e1/archive (apps/api/src/__tests__/retention-policies.test.ts:99)"}, "properties": {"repobilityId": "6ab737be3b52a4b7", "scanner": "scanner-primary", "fingerprint": "08e258df0ca6c1af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7be4431e4f5e5596", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/entities/e1/archive (apps/api/src/__tests__/retention-policies.test.ts:108)"}, "properties": {"repobilityId": "0be39104d637cd8f", "scanner": "scanner-primary", "fingerprint": "7be4431e4f5e5596", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-546eb5ac0ca67a99", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/run-archival-job (apps/api/src/__tests__/retention-policies.test.ts:119)"}, "properties": {"repobilityId": "ab3c9223857b0ae9", "scanner": "scanner-primary", "fingerprint": "546eb5ac0ca67a99", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-89c4518b04ae4a10", "level": "error", "message": {"text": "Dangling fetch: GET /health-scorecards/hubspot/health-score?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.test.ts:48)"}, "properties": {"repobilityId": "eb298c057dde5f3c", "scanner": "scanner-primary", "fingerprint": "89c4518b04ae4a10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be85cb137881167b", "level": "error", "message": {"text": "Dangling fetch: GET /health-scorecards/hubspot/health-score (apps/api/src/__tests__/connector-health-scorecards.test.ts:56)"}, "properties": {"repobilityId": "8536550ff546dd7d", "scanner": "scanner-primary", "fingerprint": "be85cb137881167b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0b6c14cfa6c019d", "level": "error", "message": {"text": "Dangling fetch: POST /health-scorecards/hubspot/sla-config (apps/api/src/__tests__/connector-health-scorecards.test.ts:78)"}, "properties": {"repobilityId": "d6e4de90f859c6a0", "scanner": "scanner-primary", "fingerprint": "b0b6c14cfa6c019d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3949e9bbfbf097ea", "level": "error", "message": {"text": "Dangling fetch: POST /health-scorecards/hubspot/sla-config (apps/api/src/__tests__/connector-health-scorecards.test.ts:90)"}, "properties": {"repobilityId": "0dcdbdbb2f103f77", "scanner": "scanner-primary", "fingerprint": "3949e9bbfbf097ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3fd6f9db851e21ec", "level": "error", "message": {"text": "Dangling fetch: GET /health-scorecards/health-summary?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.test.ts:104)"}, "properties": {"repobilityId": "cec598c7ce1ba98c", "scanner": "scanner-primary", "fingerprint": "3fd6f9db851e21ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc66bf18314b4d12", "level": "error", "message": {"text": "Dangling fetch: GET /health-scorecards/incidents?workspaceId=ws-1 (apps/api/src/__tests__/connector-health-scorecards.test.ts:116)"}, "properties": {"repobilityId": "accfdb2862366657", "scanner": "scanner-primary", "fingerprint": "fc66bf18314b4d12", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d998c159d913988e", "level": "error", "message": {"text": "Dangling fetch: POST /health-scorecards/incidents/alert-1/resolve (apps/api/src/__tests__/connector-health-scorecards.test.ts:128)"}, "properties": {"repobilityId": "5843e11904e9037a", "scanner": "scanner-primary", "fingerprint": "d998c159d913988e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2e401735548eda47", "level": "error", "message": {"text": "Dangling fetch: POST /health-scorecards/incidents/alert-1/resolve (apps/api/src/__tests__/connector-health-scorecards.test.ts:140)"}, "properties": {"repobilityId": "a08d32b83d4e33dd", "scanner": "scanner-primary", "fingerprint": "2e401735548eda47", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68096508ed00daac", "level": "error", "message": {"text": "Dangling fetch: GET /health-scorecards/hubspot/sla-breaches (apps/api/src/__tests__/connector-health-scorecards.test.ts:154)"}, "properties": {"repobilityId": "5f460170da07e48d", "scanner": "scanner-primary", "fingerprint": "68096508ed00daac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3766d3e8491f31e8", "level": "error", "message": {"text": "Dangling fetch: POST /health-scorecards/hubspot/recovery (apps/api/src/__tests__/connector-health-scorecards.test.ts:166)"}, "properties": {"repobilityId": "d6aee39d73fb2afd", "scanner": "scanner-primary", "fingerprint": "3766d3e8491f31e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e7b893e30e04f9d", "level": "error", "message": {"text": "Dangling fetch: POST /health-scorecards/hubspot/recovery (apps/api/src/__tests__/connector-health-scorecards.test.ts:178)"}, "properties": {"repobilityId": "cb6f968ff4dc7805", "scanner": "scanner-primary", "fingerprint": "1e7b893e30e04f9d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d055c9429cfa8f50", "level": "error", "message": {"text": "Dangling fetch: GET /health-scorecards/hubspot/recovery-suggestions (apps/api/src/__tests__/connector-health-scorecards.test.ts:192)"}, "properties": {"repobilityId": "dcb607a7c614e4b5", "scanner": "scanner-primary", "fingerprint": "d055c9429cfa8f50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ac577ade42c5e288", "level": "error", "message": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:47)"}, "properties": {"repobilityId": "cab0fd429d0b351d", "scanner": "scanner-primary", "fingerprint": "ac577ade42c5e288", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18b7a1fef266fe2f", "level": "error", "message": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:58)"}, "properties": {"repobilityId": "8f57c6b734c19f46", "scanner": "scanner-primary", "fingerprint": "18b7a1fef266fe2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f13e8e84883f0be", "level": "error", "message": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:67)"}, "properties": {"repobilityId": "d6e5122bbcc98cee", "scanner": "scanner-primary", "fingerprint": "6f13e8e84883f0be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d65d2fc9ce27425", "level": "error", "message": {"text": "Dangling fetch: POST /federation/workspaces (apps/api/src/__tests__/federation.test.ts:76)"}, "properties": {"repobilityId": "bcaa77d1a0cfa5f3", "scanner": "scanner-primary", "fingerprint": "5d65d2fc9ce27425", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5cca6199f08f020b", "level": "error", "message": {"text": "Dangling fetch: GET /federation/workspaces (apps/api/src/__tests__/federation.test.ts:91)"}, "properties": {"repobilityId": "e77155b806c03bbf", "scanner": "scanner-primary", "fingerprint": "5cca6199f08f020b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-821c5c6e28fb63ae", "level": "error", "message": {"text": "Dangling fetch: DELETE /federation/workspaces/ws2 (apps/api/src/__tests__/federation.test.ts:103)"}, "properties": {"repobilityId": "51bf7f82db02b843", "scanner": "scanner-primary", "fingerprint": "821c5c6e28fb63ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-936c83401c650827", "level": "error", "message": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:115)"}, "properties": {"repobilityId": "0b5a81a4d7af0b9d", "scanner": "scanner-primary", "fingerprint": "936c83401c650827", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-74705e83af1538b4", "level": "error", "message": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:127)"}, "properties": {"repobilityId": "c2e79f8dc1447ef1", "scanner": "scanner-primary", "fingerprint": "74705e83af1538b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9b47738bca04aea", "level": "error", "message": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:136)"}, "properties": {"repobilityId": "096fd0a6f4b60c45", "scanner": "scanner-primary", "fingerprint": "f9b47738bca04aea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c590243381ebd19e", "level": "error", "message": {"text": "Dangling fetch: POST /federation/query (apps/api/src/__tests__/federation.test.ts:145)"}, "properties": {"repobilityId": "c2315b8f8a5d9e68", "scanner": "scanner-primary", "fingerprint": "c590243381ebd19e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01cfb08304af79b7", "level": "error", "message": {"text": "Dangling fetch: GET /federation/audit (apps/api/src/__tests__/federation.test.ts:156)"}, "properties": {"repobilityId": "fa5593e294255807", "scanner": "scanner-primary", "fingerprint": "01cfb08304af79b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-300119faffc19163", "level": "error", "message": {"text": "Dangling fetch: GET /federation/audit?limit=10 (apps/api/src/__tests__/federation.test.ts:166)"}, "properties": {"repobilityId": "96cc37b58d535655", "scanner": "scanner-primary", "fingerprint": "300119faffc19163", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-358ff155ffd3e953", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage (apps/api/src/__tests__/data-lineage.test.ts:66)"}, "properties": {"repobilityId": "400250134fb0348b", "scanner": "scanner-primary", "fingerprint": "358ff155ffd3e953", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-40ea80654a8ac8f6", "level": "error", "message": {"text": "Dangling fetch: GET /entities/unknown:1/lineage (apps/api/src/__tests__/data-lineage.test.ts:75)"}, "properties": {"repobilityId": "b544f7aacd388ede", "scanner": "scanner-primary", "fingerprint": "40ea80654a8ac8f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd9cc4de36a8d0fd", "level": "error", "message": {"text": "Dangling fetch: GET /entities/e1/lineage (apps/api/src/__tests__/data-lineage.test.ts:81)"}, "properties": {"repobilityId": "8625fe51610a7bdc", "scanner": "scanner-primary", "fingerprint": "dd9cc4de36a8d0fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d9f3f4456e211aa", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/lineage-graph (apps/api/src/__tests__/data-lineage.test.ts:89)"}, "properties": {"repobilityId": "7ac723aa4b4cd8c0", "scanner": "scanner-primary", "fingerprint": "3d9f3f4456e211aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b14e01de16f0d1a", "level": "error", "message": {"text": "Dangling fetch: GET /entities/e1/lineage-graph (apps/api/src/__tests__/data-lineage.test.ts:98)"}, "properties": {"repobilityId": "4aac90e9d470f213", "scanner": "scanner-primary", "fingerprint": "5b14e01de16f0d1a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5a42803112ee788", "level": "error", "message": {"text": "Dangling fetch: GET /entities/hubspot:contact:1/impact (apps/api/src/__tests__/data-lineage.test.ts:106)"}, "properties": {"repobilityId": "776367203d41ab34", "scanner": "scanner-primary", "fingerprint": "f5a42803112ee788", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b11fe4d93aaafd09", "level": "error", "message": {"text": "Dangling fetch: GET /entities/e1/impact (apps/api/src/__tests__/data-lineage.test.ts:115)"}, "properties": {"repobilityId": "122742f6b97af0e2", "scanner": "scanner-primary", "fingerprint": "b11fe4d93aaafd09", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cbf96afb7bb4a23a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:41)"}, "properties": {"repobilityId": "1299840f3f158fd1", "scanner": "scanner-primary", "fingerprint": "cbf96afb7bb4a23a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9b10fe23051c892b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:53)"}, "properties": {"repobilityId": "7b0593393682d992", "scanner": "scanner-primary", "fingerprint": "9b10fe23051c892b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b35041e7f99ded92", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:64)"}, "properties": {"repobilityId": "d53584c87dc9ad3f", "scanner": "scanner-primary", "fingerprint": "b35041e7f99ded92", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2a199538e6554a0", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/connectors/hubspot/event-config (apps/api/src/__tests__/event-streams.test.ts:73)"}, "properties": {"repobilityId": "c268d44cbde5e210", "scanner": "scanner-primary", "fingerprint": "f2a199538e6554a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-90143bd6a56a240d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/hubspot/events (apps/api/src/__tests__/event-streams.test.ts:84)"}, "properties": {"repobilityId": "54900abbd680181c", "scanner": "scanner-primary", "fingerprint": "90143bd6a56a240d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cf875a7929679de1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/hubspot/events (apps/api/src/__tests__/event-streams.test.ts:102)"}, "properties": {"repobilityId": "abfe7692869ae96b", "scanner": "scanner-primary", "fingerprint": "cf875a7929679de1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8bc937d502f209c8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/events/audit (apps/api/src/__tests__/event-streams.test.ts:113)"}, "properties": {"repobilityId": "fbf110c52d2a1724", "scanner": "scanner-primary", "fingerprint": "8bc937d502f209c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e8d8f8216699b378", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/events/evt-1/retry (apps/api/src/__tests__/event-streams.test.ts:126)"}, "properties": {"repobilityId": "d206001a361f0355", "scanner": "scanner-primary", "fingerprint": "e8d8f8216699b378", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-574c8985016f8b81", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/events/pending-retry (apps/api/src/__tests__/event-streams.test.ts:138)"}, "properties": {"repobilityId": "555e849556eff151", "scanner": "scanner-primary", "fingerprint": "574c8985016f8b81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f674a23677922fab", "level": "error", "message": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality (apps/api/src/__tests__/admin-sync-quality.test.ts:45)"}, "properties": {"repobilityId": "d57b8651fa2749cf", "scanner": "scanner-primary", "fingerprint": "f674a23677922fab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0c9931ef65975cad", "level": "error", "message": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:50)"}, "properties": {"repobilityId": "2f68c4c2bc12a6e2", "scanner": "scanner-primary", "fingerprint": "0c9931ef65975cad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ebec5acef64cfef", "level": "error", "message": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=14 (apps/api/src/__tests__/admin-sync-quality.test.ts:57)"}, "properties": {"repobilityId": "618d7b56cd5c3162", "scanner": "scanner-primary", "fingerprint": "3ebec5acef64cfef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e6f7b804e5d9c7f", "level": "error", "message": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:62)"}, "properties": {"repobilityId": "20e0903f055a6e7b", "scanner": "scanner-primary", "fingerprint": "1e6f7b804e5d9c7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b25a2f8c7c211da", "level": "error", "message": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:68)"}, "properties": {"repobilityId": "2093c1052a051a0f", "scanner": "scanner-primary", "fingerprint": "8b25a2f8c7c211da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-951e86c24a5fb01a", "level": "error", "message": {"text": "Dangling fetch: GET /admin/connectors/${CONNECTOR}/quality?workspaceId=${WS}&windowDays=abc (apps/api/src/__tests__/admin-sync-quality.test.ts:73)"}, "properties": {"repobilityId": "c20fc8207e2235a7", "scanner": "scanner-primary", "fingerprint": "951e86c24a5fb01a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-36296b3ef65fcb0c", "level": "error", "message": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure (apps/api/src/__tests__/admin-sync-quality.test.ts:88)"}, "properties": {"repobilityId": "3e16a42f572f471e", "scanner": "scanner-primary", "fingerprint": "36296b3ef65fcb0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a27fb3a15e4182db", "level": "error", "message": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:97)"}, "properties": {"repobilityId": "a7edcb8aa03e5386", "scanner": "scanner-primary", "fingerprint": "a27fb3a15e4182db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9671afa3b4eb70a3", "level": "error", "message": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:111)"}, "properties": {"repobilityId": "212b7ba5f73d8f8b", "scanner": "scanner-primary", "fingerprint": "9671afa3b4eb70a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c0e233cf141d623f", "level": "error", "message": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:127)"}, "properties": {"repobilityId": "64e95ec40c70d6e3", "scanner": "scanner-primary", "fingerprint": "c0e233cf141d623f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d63bfb632da52f48", "level": "error", "message": {"text": "Dangling fetch: POST /admin/connectors/${CONNECTOR}/quality/configure?workspaceId=${WS} (apps/api/src/__tests__/admin-sync-quality.test.ts:140)"}, "properties": {"repobilityId": "19bb04f5c0de9c11", "scanner": "scanner-primary", "fingerprint": "d63bfb632da52f48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e76129176e647029", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-health (apps/api/src/__tests__/vector-health.test.ts:59)"}, "properties": {"repobilityId": "3e7d08f4b5e0a370", "scanner": "scanner-primary", "fingerprint": "e76129176e647029", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9542d43c7697ba00", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-health?workspaceId=ws-1 (apps/api/src/__tests__/vector-health.test.ts:65)"}, "properties": {"repobilityId": "9ed2ab6221ef8b87", "scanner": "scanner-primary", "fingerprint": "9542d43c7697ba00", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d61a2f0c18cb81df", "level": "error", "message": {"text": "Dangling fetch: GET /admin/vector-health?workspaceId=ws-empty (apps/api/src/__tests__/vector-health.test.ts:75)"}, "properties": {"repobilityId": "559edaf8ca1910f4", "scanner": "scanner-primary", "fingerprint": "d61a2f0c18cb81df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0d47b5a262a56bc", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:87)"}, "properties": {"repobilityId": "2f079b48f459c0c3", "scanner": "scanner-primary", "fingerprint": "b0d47b5a262a56bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5294cd190385be0b", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:97)"}, "properties": {"repobilityId": "e5085106506a03fe", "scanner": "scanner-primary", "fingerprint": "5294cd190385be0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0241be424ca71fc", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:107)"}, "properties": {"repobilityId": "7777fbddc7d572ee", "scanner": "scanner-primary", "fingerprint": "a0241be424ca71fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-788e8cff992e75a8", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:117)"}, "properties": {"repobilityId": "23cb3310e2ca7657", "scanner": "scanner-primary", "fingerprint": "788e8cff992e75a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4f9ed65f2672456d", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:129)"}, "properties": {"repobilityId": "c8b311018696c951", "scanner": "scanner-primary", "fingerprint": "4f9ed65f2672456d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1d1ff8b765eb28cd", "level": "error", "message": {"text": "Dangling fetch: POST /admin/vector-health/run (apps/api/src/__tests__/vector-health.test.ts:141)"}, "properties": {"repobilityId": "7b601aad954da29f", "scanner": "scanner-primary", "fingerprint": "1d1ff8b765eb28cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2745c9d3e7ae164f", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:57)"}, "properties": {"repobilityId": "396aedd2949f95ed", "scanner": "scanner-primary", "fingerprint": "2745c9d3e7ae164f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c3787fed2c651f4", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:69)"}, "properties": {"repobilityId": "299357d80db1b544", "scanner": "scanner-primary", "fingerprint": "8c3787fed2c651f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ee2a6392b85199b", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:78)"}, "properties": {"repobilityId": "65283493d542ad94", "scanner": "scanner-primary", "fingerprint": "2ee2a6392b85199b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed972129cdcf1c89", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:87)"}, "properties": {"repobilityId": "f601c7a071360659", "scanner": "scanner-primary", "fingerprint": "ed972129cdcf1c89", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4d92df2d084dbda1", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/summarize (apps/api/src/__tests__/context-summarization.test.ts:96)"}, "properties": {"repobilityId": "9fed02ca05fc538f", "scanner": "scanner-primary", "fingerprint": "4d92df2d084dbda1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7baffdf2de690823", "level": "error", "message": {"text": "Dangling fetch: GET /context-summarization/metrics (apps/api/src/__tests__/context-summarization.test.ts:107)"}, "properties": {"repobilityId": "e42d879d9fcd4796", "scanner": "scanner-primary", "fingerprint": "7baffdf2de690823", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a85c8bb6967e928", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/metrics/track (apps/api/src/__tests__/context-summarization.test.ts:119)"}, "properties": {"repobilityId": "a82c28c0debd0e34", "scanner": "scanner-primary", "fingerprint": "7a85c8bb6967e928", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d682dabc6378fc2", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/metrics/track (apps/api/src/__tests__/context-summarization.test.ts:130)"}, "properties": {"repobilityId": "9a145fa0153ec5b1", "scanner": "scanner-primary", "fingerprint": "3d682dabc6378fc2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a362e7d11ec4424", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/classify-intent (apps/api/src/__tests__/context-summarization.test.ts:141)"}, "properties": {"repobilityId": "859652ae9e3af4f9", "scanner": "scanner-primary", "fingerprint": "1a362e7d11ec4424", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f9f0ee504c6fab0", "level": "error", "message": {"text": "Dangling fetch: POST /context-summarization/classify-intent (apps/api/src/__tests__/context-summarization.test.ts:152)"}, "properties": {"repobilityId": "c03716ec3a0a0a80", "scanner": "scanner-primary", "fingerprint": "2f9f0ee504c6fab0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c41b520187374f2", "level": "error", "message": {"text": "Dangling fetch: GET /cache/stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:27)"}, "properties": {"repobilityId": "bf3751246d1936a4", "scanner": "scanner-primary", "fingerprint": "2c41b520187374f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5ac54b456e26978", "level": "error", "message": {"text": "Dangling fetch: GET /cache/stats?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:42)"}, "properties": {"repobilityId": "b71caf87115ce6d2", "scanner": "scanner-primary", "fingerprint": "b5ac54b456e26978", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b46ddeb53267a89d", "level": "error", "message": {"text": "Dangling fetch: GET /cache/stats?workspaceId=ws-1&entityType=deal (apps/api/src/__tests__/cache-optimization.test.ts:50)"}, "properties": {"repobilityId": "a663e786c06df3ac", "scanner": "scanner-primary", "fingerprint": "b46ddeb53267a89d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da874bcb379de796", "level": "error", "message": {"text": "Dangling fetch: GET /cache/stats (apps/api/src/__tests__/cache-optimization.test.ts:56)"}, "properties": {"repobilityId": "fc4f88c94bf2109f", "scanner": "scanner-primary", "fingerprint": "da874bcb379de796", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c070aa3783bef25", "level": "error", "message": {"text": "Dangling fetch: GET /cache/dependencies/abc123?workspaceId=ws-1 (apps/api/src/__tests__/cache-optimization.test.ts:68)"}, "properties": {"repobilityId": "b7e0b75d5c7f00e0", "scanner": "scanner-primary", "fingerprint": "5c070aa3783bef25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-32fe6d765ef6f12c", "level": "error", "message": {"text": "Dangling fetch: GET /cache/dependencies/q1 (apps/api/src/__tests__/cache-optimization.test.ts:78)"}, "properties": {"repobilityId": "e7cf8929cc04399a", "scanner": "scanner-primary", "fingerprint": "32fe6d765ef6f12c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9309e0ad6df789af", "level": "error", "message": {"text": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:95)"}, "properties": {"repobilityId": "4f5a2f594364b232", "scanner": "scanner-primary", "fingerprint": "9309e0ad6df789af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-361ec388dddb4725", "level": "error", "message": {"text": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:107)"}, "properties": {"repobilityId": "fa020772c1cd8a82", "scanner": "scanner-primary", "fingerprint": "361ec388dddb4725", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8943a84462a0a13a", "level": "error", "message": {"text": "Dangling fetch: POST /cache/prefetch (apps/api/src/__tests__/cache-optimization.test.ts:117)"}, "properties": {"repobilityId": "abd20d4a9a3966d7", "scanner": "scanner-primary", "fingerprint": "8943a84462a0a13a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b34020b8848b0992", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/entries/q-abc (apps/api/src/__tests__/cache-optimization.test.ts:131)"}, "properties": {"repobilityId": "d9fcafb05220b6a1", "scanner": "scanner-primary", "fingerprint": "b34020b8848b0992", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-75c495cdde361c1f", "level": "error", "message": {"text": "Dangling fetch: DELETE /cache/entries/q-abc (apps/api/src/__tests__/cache-optimization.test.ts:143)"}, "properties": {"repobilityId": "f3d35ecf8b1cbcc3", "scanner": "scanner-primary", "fingerprint": "75c495cdde361c1f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da7bd44848c7a539", "level": "error", "message": {"text": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:53)"}, "properties": {"repobilityId": "3c4d554668f1ad11", "scanner": "scanner-primary", "fingerprint": "da7bd44848c7a539", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f3bf7f10782c485", "level": "error", "message": {"text": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:70)"}, "properties": {"repobilityId": "e488137f4915399f", "scanner": "scanner-primary", "fingerprint": "6f3bf7f10782c485", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8fbbbe20098fe2e0", "level": "error", "message": {"text": "Dangling fetch: POST /transformations/rules (apps/api/src/__tests__/transformations.test.ts:82)"}, "properties": {"repobilityId": "83175fba676bc698", "scanner": "scanner-primary", "fingerprint": "8fbbbe20098fe2e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20d03c2fc8e82f41", "level": "error", "message": {"text": "Dangling fetch: GET /transformations/rules (apps/api/src/__tests__/transformations.test.ts:94)"}, "properties": {"repobilityId": "77d4087f64a4a6fd", "scanner": "scanner-primary", "fingerprint": "20d03c2fc8e82f41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9992e2c3e70be139", "level": "error", "message": {"text": "Dangling fetch: GET /transformations/rules?connectorId=hubspot&entityType=contact (apps/api/src/__tests__/transformations.test.ts:102)"}, "properties": {"repobilityId": "43430a91fc4180e5", "scanner": "scanner-primary", "fingerprint": "9992e2c3e70be139", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25d3cc06ab8163ec", "level": "error", "message": {"text": "Dangling fetch: DELETE /transformations/rules/r-uuid (apps/api/src/__tests__/transformations.test.ts:110)"}, "properties": {"repobilityId": "c6a6a7cf64cb8dd9", "scanner": "scanner-primary", "fingerprint": "25d3cc06ab8163ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bc7b1e2c327c3387", "level": "error", "message": {"text": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:119)"}, "properties": {"repobilityId": "a12eaad028895339", "scanner": "scanner-primary", "fingerprint": "bc7b1e2c327c3387", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ddfd9d93a860e3c8", "level": "error", "message": {"text": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:136)"}, "properties": {"repobilityId": "d980b41e84d289d9", "scanner": "scanner-primary", "fingerprint": "ddfd9d93a860e3c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3a078cbcfdeed94f", "level": "error", "message": {"text": "Dangling fetch: POST /transformations/test (apps/api/src/__tests__/transformations.test.ts:154)"}, "properties": {"repobilityId": "9c5f00f6cb8a4fc5", "scanner": "scanner-primary", "fingerprint": "3a078cbcfdeed94f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-733b026f5d5675a0", "level": "error", "message": {"text": "Dangling fetch: GET /plans/plan-1 (apps/api/src/__tests__/query-execution-plans.test.ts:111)"}, "properties": {"repobilityId": "ea004446232acc74", "scanner": "scanner-primary", "fingerprint": "733b026f5d5675a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-38f87c7c0d5d2eeb", "level": "error", "message": {"text": "Dangling fetch: GET /plans/nonexistent (apps/api/src/__tests__/query-execution-plans.test.ts:124)"}, "properties": {"repobilityId": "0f83f780ca06e9f4", "scanner": "scanner-primary", "fingerprint": "38f87c7c0d5d2eeb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d5023c0ec2db96b8", "level": "error", "message": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:138)"}, "properties": {"repobilityId": "b7e42cc897973ea0", "scanner": "scanner-primary", "fingerprint": "d5023c0ec2db96b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0786d21624f405cf", "level": "error", "message": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:157)"}, "properties": {"repobilityId": "d15981db900526c0", "scanner": "scanner-primary", "fingerprint": "0786d21624f405cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56b09ff57364f5a8", "level": "error", "message": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:170)"}, "properties": {"repobilityId": "f3127520f9392c71", "scanner": "scanner-primary", "fingerprint": "56b09ff57364f5a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-60f9f6711d1db561", "level": "error", "message": {"text": "Dangling fetch: POST /plans/nonexistent/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:184)"}, "properties": {"repobilityId": "b7b7d5c204cb5767", "scanner": "scanner-primary", "fingerprint": "60f9f6711d1db561", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f12424846e106b5a", "level": "error", "message": {"text": "Dangling fetch: POST /plans/plan-1/rerun (apps/api/src/__tests__/query-execution-plans.test.ts:198)"}, "properties": {"repobilityId": "76327d0764707613", "scanner": "scanner-primary", "fingerprint": "f12424846e106b5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8965c29051f75411", "level": "error", "message": {"text": "Dangling fetch: GET /cache/clusters (apps/api/src/__tests__/query-clustering.test.ts:63)"}, "properties": {"repobilityId": "ff24821d94eb6420", "scanner": "scanner-primary", "fingerprint": "8965c29051f75411", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4236abb5e09d61b0", "level": "error", "message": {"text": "Dangling fetch: GET /cache/clusters?days=14 (apps/api/src/__tests__/query-clustering.test.ts:74)"}, "properties": {"repobilityId": "4c72b2df53cc19b8", "scanner": "scanner-primary", "fingerprint": "4236abb5e09d61b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c76bd7bd4bd34de8", "level": "error", "message": {"text": "Dangling fetch: GET /cache/clusters/ws1-cluster-0 (apps/api/src/__tests__/query-clustering.test.ts:83)"}, "properties": {"repobilityId": "710083e53e52cf72", "scanner": "scanner-primary", "fingerprint": "c76bd7bd4bd34de8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4e9b8d08a06549f3", "level": "error", "message": {"text": "Dangling fetch: GET /cache/clusters/does-not-exist (apps/api/src/__tests__/query-clustering.test.ts:92)"}, "properties": {"repobilityId": "0760974251f9b76c", "scanner": "scanner-primary", "fingerprint": "4e9b8d08a06549f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0631b9674cac5c8", "level": "error", "message": {"text": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:101)"}, "properties": {"repobilityId": "f1dc8b8e90573af5", "scanner": "scanner-primary", "fingerprint": "a0631b9674cac5c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7f5aa1bf7190352b", "level": "error", "message": {"text": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:113)"}, "properties": {"repobilityId": "7232df5b2482637e", "scanner": "scanner-primary", "fingerprint": "7f5aa1bf7190352b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-31ea43901f6c7a96", "level": "error", "message": {"text": "Dangling fetch: POST /cache/assign-ttl (apps/api/src/__tests__/query-clustering.test.ts:122)"}, "properties": {"repobilityId": "0a37959ea205230d", "scanner": "scanner-primary", "fingerprint": "31ea43901f6c7a96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5303a91a020e1df9", "level": "error", "message": {"text": "Dangling fetch: POST /cache/invalidate (apps/api/src/__tests__/query-clustering.test.ts:133)"}, "properties": {"repobilityId": "331e5bc912b9fe52", "scanner": "scanner-primary", "fingerprint": "5303a91a020e1df9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a050a38237e4824", "level": "error", "message": {"text": "Dangling fetch: POST /cache/invalidate (apps/api/src/__tests__/query-clustering.test.ts:145)"}, "properties": {"repobilityId": "594a8da7b14a38f2", "scanner": "scanner-primary", "fingerprint": "7a050a38237e4824", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f2160f93c21efb9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot (apps/api/src/__tests__/workspace-benchmarking.test.ts:46)"}, "properties": {"repobilityId": "f80139ab9a2b126e", "scanner": "scanner-primary", "fingerprint": "8f2160f93c21efb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-21008b03949858c9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:53)"}, "properties": {"repobilityId": "80cb04b0d9fbb182", "scanner": "scanner-primary", "fingerprint": "21008b03949858c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6bd6cf2f221e20a5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:62)"}, "properties": {"repobilityId": "0f37a22b2027aa79", "scanner": "scanner-primary", "fingerprint": "6bd6cf2f221e20a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10a989652f102776", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison (apps/api/src/__tests__/workspace-benchmarking.test.ts:70)"}, "properties": {"repobilityId": "36b209262af1e5ec", "scanner": "scanner-primary", "fingerprint": "10a989652f102776", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c64f6223110c848", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:77)"}, "properties": {"repobilityId": "45174c0f57d2d7a2", "scanner": "scanner-primary", "fingerprint": "2c64f6223110c848", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a5d520eef223aca2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&industry=saas&companySize=smb (apps/api/src/__tests__/workspace-benchmarking.test.ts:84)"}, "properties": {"repobilityId": "6b90a521392b5f5d", "scanner": "scanner-primary", "fingerprint": "a5d520eef223aca2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f0030503046e2ca", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${WORKSPACE}&companySize=giant (apps/api/src/__tests__/workspace-benchmarking.test.ts:94)"}, "properties": {"repobilityId": "b47c794fd95c4ddc", "scanner": "scanner-primary", "fingerprint": "3f0030503046e2ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc7b08990c75a6ee", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:103)"}, "properties": {"repobilityId": "a5aab633ebd9b901", "scanner": "scanner-primary", "fingerprint": "cc7b08990c75a6ee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9001ee460a60fdb2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/settings?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workspace-benchmarking.test.ts:112)"}, "properties": {"repobilityId": "8dec46fb6707ca4e", "scanner": "scanner-primary", "fingerprint": "9001ee460a60fdb2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-245daf91980bae6f", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:122)"}, "properties": {"repobilityId": "300b8ee64ef84293", "scanner": "scanner-primary", "fingerprint": "245daf91980bae6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-53a21534631daa54", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/api/src/__tests__/workspace-benchmarking.test.ts:134)"}, "properties": {"repobilityId": "fc1dded403fe8817", "scanner": "scanner-primary", "fingerprint": "53a21534631daa54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bcba8781257bf196", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:148)"}, "properties": {"repobilityId": "d53e45db9f8d75b8", "scanner": "scanner-primary", "fingerprint": "bcba8781257bf196", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-73ad7b2cbede682c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:159)"}, "properties": {"repobilityId": "e0d3f7fd0cadddd6", "scanner": "scanner-primary", "fingerprint": "73ad7b2cbede682c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3703cf56784feb88", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/benchmarks/export (apps/api/src/__tests__/workspace-benchmarking.test.ts:172)"}, "properties": {"repobilityId": "505b91e86b746c52", "scanner": "scanner-primary", "fingerprint": "3703cf56784feb88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fdbd526d92755735", "level": "error", "message": {"text": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:79)"}, "properties": {"repobilityId": "33f0f3b389e8f82d", "scanner": "scanner-primary", "fingerprint": "fdbd526d92755735", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f0125465479d1ed", "level": "error", "message": {"text": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:89)"}, "properties": {"repobilityId": "df9c92a2cdb83647", "scanner": "scanner-primary", "fingerprint": "2f0125465479d1ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-043d19c9fc046642", "level": "error", "message": {"text": "Dangling fetch: GET /sync-diagnostics/hs-1 (apps/api/src/__tests__/sync-diagnostics.test.ts:98)"}, "properties": {"repobilityId": "43648cc7fdde95e3", "scanner": "scanner-primary", "fingerprint": "043d19c9fc046642", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dbc7c94616a8ec33", "level": "error", "message": {"text": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:108)"}, "properties": {"repobilityId": "3a9ed8d73ea2a864", "scanner": "scanner-primary", "fingerprint": "dbc7c94616a8ec33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2868fba6c1e8aff8", "level": "error", "message": {"text": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:123)"}, "properties": {"repobilityId": "1b71e7e4a0eb7c2b", "scanner": "scanner-primary", "fingerprint": "2868fba6c1e8aff8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c682020c4a65af1", "level": "error", "message": {"text": "Dangling fetch: POST /sync-diagnostics (apps/api/src/__tests__/sync-diagnostics.test.ts:134)"}, "properties": {"repobilityId": "8c9ab49b1dcb1759", "scanner": "scanner-primary", "fingerprint": "2c682020c4a65af1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0fd247718b073981", "level": "error", "message": {"text": "Dangling fetch: POST /sync-diagnostics/d1/resolve (apps/api/src/__tests__/sync-diagnostics.test.ts:148)"}, "properties": {"repobilityId": "dbc67c299ca480d3", "scanner": "scanner-primary", "fingerprint": "0fd247718b073981", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fb329768c7a7057b", "level": "error", "message": {"text": "Dangling fetch: POST /sync-diagnostics/d1/resolve (apps/api/src/__tests__/sync-diagnostics.test.ts:158)"}, "properties": {"repobilityId": "1dba1c92bf45f836", "scanner": "scanner-primary", "fingerprint": "fb329768c7a7057b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d19ad82291178ef0", "level": "error", "message": {"text": "Dangling fetch: GET /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:65)"}, "properties": {"repobilityId": "f58e8d9273294ecc", "scanner": "scanner-primary", "fingerprint": "d19ad82291178ef0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a267e071f17ac750", "level": "error", "message": {"text": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:75)"}, "properties": {"repobilityId": "2fd781cb7a3ea2d4", "scanner": "scanner-primary", "fingerprint": "a267e071f17ac750", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6c6408d85f26fff1", "level": "error", "message": {"text": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:85)"}, "properties": {"repobilityId": "9f3efc9b4b9a706a", "scanner": "scanner-primary", "fingerprint": "6c6408d85f26fff1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc487e0ca953b984", "level": "error", "message": {"text": "Dangling fetch: POST /query-context/versions (apps/api/src/__tests__/mcp-tools.test.ts:94)"}, "properties": {"repobilityId": "9d921a980d8160a7", "scanner": "scanner-primary", "fingerprint": "fc487e0ca953b984", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8dfc18711a1dab08", "level": "error", "message": {"text": "Dangling fetch: POST /query-context/versions/1.0/deprecate (apps/api/src/__tests__/mcp-tools.test.ts:106)"}, "properties": {"repobilityId": "22a99c84b6d1d07c", "scanner": "scanner-primary", "fingerprint": "8dfc18711a1dab08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fac132091b090b77", "level": "error", "message": {"text": "Dangling fetch: POST /query-context/versions/1.0/deprecate (apps/api/src/__tests__/mcp-tools.test.ts:114)"}, "properties": {"repobilityId": "a67099cab0fecfeb", "scanner": "scanner-primary", "fingerprint": "fac132091b090b77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59e13bd6c7b1b4c2", "level": "error", "message": {"text": "Dangling fetch: DELETE /query-context/versions/1.0 (apps/api/src/__tests__/mcp-tools.test.ts:125)"}, "properties": {"repobilityId": "286c38f9f72a7b9b", "scanner": "scanner-primary", "fingerprint": "59e13bd6c7b1b4c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-364e79aea94ac1d5", "level": "error", "message": {"text": "Dangling fetch: GET /query-context/resolve?clientVersion=1.2 (apps/api/src/__tests__/mcp-tools.test.ts:137)"}, "properties": {"repobilityId": "612ba7d8e412b3ae", "scanner": "scanner-primary", "fingerprint": "364e79aea94ac1d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef348e53b80534be", "level": "error", "message": {"text": "Dangling fetch: GET /unknown-tool/resolve (apps/api/src/__tests__/mcp-tools.test.ts:145)"}, "properties": {"repobilityId": "c917e36fb66d0ba4", "scanner": "scanner-primary", "fingerprint": "ef348e53b80534be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f894fb4cab32beb8", "level": "error", "message": {"text": "Dangling fetch: GET /query-context/sdk-stub?language=typescript (apps/api/src/__tests__/mcp-tools.test.ts:155)"}, "properties": {"repobilityId": "f4b106897d4a6f27", "scanner": "scanner-primary", "fingerprint": "f894fb4cab32beb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-70bcbc9a0f18825b", "level": "error", "message": {"text": "Dangling fetch: GET /missing-tool/sdk-stub (apps/api/src/__tests__/mcp-tools.test.ts:163)"}, "properties": {"repobilityId": "f82e5219aaa996c4", "scanner": "scanner-primary", "fingerprint": "70bcbc9a0f18825b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d5f6cff9d710d34", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:46)"}, "properties": {"repobilityId": "82fd52cace2a9303", "scanner": "scanner-primary", "fingerprint": "6d5f6cff9d710d34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ef3749dfe874318", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workflow-templates?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:53)"}, "properties": {"repobilityId": "af5671cb36e4d9be", "scanner": "scanner-primary", "fingerprint": "5ef3749dfe874318", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-75901cb90da607b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workflow-templates?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:63)"}, "properties": {"repobilityId": "ed995dd09ef4feaa", "scanner": "scanner-primary", "fingerprint": "75901cb90da607b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f0a8c1baf5c41bc5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:71)"}, "properties": {"repobilityId": "4e9a090016c7e622", "scanner": "scanner-primary", "fingerprint": "f0a8c1baf5c41bc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ebf178411f0ef25f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workflow-templates/missing?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:78)"}, "properties": {"repobilityId": "d4ae28a6cee0a937", "scanner": "scanner-primary", "fingerprint": "ebf178411f0ef25f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ad756aafa758abfc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:85)"}, "properties": {"repobilityId": "4b4f01633a145b70", "scanner": "scanner-primary", "fingerprint": "ad756aafa758abfc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34804d6ad591273f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:95)"}, "properties": {"repobilityId": "e7aacac3dbaf6075", "scanner": "scanner-primary", "fingerprint": "34804d6ad591273f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e48ee2910ce24fca", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:106)"}, "properties": {"repobilityId": "4a5b31aaff7a33de", "scanner": "scanner-primary", "fingerprint": "e48ee2910ce24fca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-15611d8d3c764bf8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workflow-templates (apps/api/src/__tests__/workflow-templates.test.ts:126)"}, "properties": {"repobilityId": "564fd5feeca4bca9", "scanner": "scanner-primary", "fingerprint": "15611d8d3c764bf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2c64baafce701f5", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:142)"}, "properties": {"repobilityId": "f18d07cc54686eec", "scanner": "scanner-primary", "fingerprint": "b2c64baafce701f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07472122c969cd34", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:153)"}, "properties": {"repobilityId": "a2c82bef04846b84", "scanner": "scanner-primary", "fingerprint": "07472122c969cd34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-156454bca0b832d1", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:165)"}, "properties": {"repobilityId": "305e30ba6380939c", "scanner": "scanner-primary", "fingerprint": "156454bca0b832d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-975ca85a519c61fc", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID} (apps/api/src/__tests__/workflow-templates.test.ts:179)"}, "properties": {"repobilityId": "b2cb44599871914c", "scanner": "scanner-primary", "fingerprint": "975ca85a519c61fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-00ff001dba61f02c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:186)"}, "properties": {"repobilityId": "8aa8c9d8c2a07336", "scanner": "scanner-primary", "fingerprint": "00ff001dba61f02c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-47677c2d7f83ad09", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/workflow-templates/${TMPL_ID}?workspaceId=${WORKSPACE} (apps/api/src/__tests__/workflow-templates.test.ts:193)"}, "properties": {"repobilityId": "63d2cc7b5e0a03fc", "scanner": "scanner-primary", "fingerprint": "47677c2d7f83ad09", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ce0cad14cfdda7d", "level": "error", "message": {"text": "Dangling fetch: GET /providers/registry (apps/api/src/__tests__/providers.test.ts:39)"}, "properties": {"repobilityId": "997b19ab1186134e", "scanner": "scanner-primary", "fingerprint": "2ce0cad14cfdda7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3db3e18f77b05242", "level": "error", "message": {"text": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:49)"}, "properties": {"repobilityId": "800e15407324037c", "scanner": "scanner-primary", "fingerprint": "3db3e18f77b05242", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-774a1c3b3e8e4cc3", "level": "error", "message": {"text": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:58)"}, "properties": {"repobilityId": "4c5c6c24eaeadc8a", "scanner": "scanner-primary", "fingerprint": "774a1c3b3e8e4cc3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4b79e580811de15", "level": "error", "message": {"text": "Dangling fetch: GET /providers (apps/api/src/__tests__/providers.test.ts:70)"}, "properties": {"repobilityId": "30fbfe2c5fac08ed", "scanner": "scanner-primary", "fingerprint": "c4b79e580811de15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc0e826c5ebef247", "level": "error", "message": {"text": "Dangling fetch: PUT /providers/not-a-provider (apps/api/src/__tests__/providers.test.ts:78)"}, "properties": {"repobilityId": "9c7971bc13898555", "scanner": "scanner-primary", "fingerprint": "cc0e826c5ebef247", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b1dbbf080c97c7c", "level": "error", "message": {"text": "Dangling fetch: PUT /providers/anthropic (apps/api/src/__tests__/providers.test.ts:90)"}, "properties": {"repobilityId": "dea0dc458f0ced93", "scanner": "scanner-primary", "fingerprint": "4b1dbbf080c97c7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2bd06d579c6e813", "level": "error", "message": {"text": "Dangling fetch: POST /providers/estimate-cost (apps/api/src/__tests__/providers.test.ts:104)"}, "properties": {"repobilityId": "d3443e3c03e37738", "scanner": "scanner-primary", "fingerprint": "f2bd06d579c6e813", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97c8f6dbf27cfc6b", "level": "error", "message": {"text": "Dangling fetch: POST /providers/estimate-cost (apps/api/src/__tests__/providers.test.ts:119)"}, "properties": {"repobilityId": "0b89c0cff56b91ea", "scanner": "scanner-primary", "fingerprint": "97c8f6dbf27cfc6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-594fb5c63ca4589f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:46)"}, "properties": {"repobilityId": "a52a2d012f3e15df", "scanner": "scanner-primary", "fingerprint": "594fb5c63ca4589f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7618ad8c790de631", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors?category=crm&minRating=4 (apps/api/src/__tests__/marketplace.test.ts:56)"}, "properties": {"repobilityId": "4638da7856dc3e7c", "scanner": "scanner-primary", "fingerprint": "7618ad8c790de631", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7df7a4f5e57285b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:63)"}, "properties": {"repobilityId": "86cfc88da2384beb", "scanner": "scanner-primary", "fingerprint": "7df7a4f5e57285b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9415dcb6ba02cae4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/install (apps/api/src/__tests__/marketplace.test.ts:74)"}, "properties": {"repobilityId": "daffa71c1304aa65", "scanner": "scanner-primary", "fingerprint": "9415dcb6ba02cae4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1fb0166c5cbe6942", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/unknown/install (apps/api/src/__tests__/marketplace.test.ts:83)"}, "properties": {"repobilityId": "d8c09998ec4e5df3", "scanner": "scanner-primary", "fingerprint": "1fb0166c5cbe6942", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9c595d57d8c4cd9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/rate (apps/api/src/__tests__/marketplace.test.ts:94)"}, "properties": {"repobilityId": "de79e4c6f42e8d7d", "scanner": "scanner-primary", "fingerprint": "d9c595d57d8c4cd9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f75ecb14189e660", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/hubspot/rate (apps/api/src/__tests__/marketplace.test.ts:106)"}, "properties": {"repobilityId": "b08e6b09f567ad40", "scanner": "scanner-primary", "fingerprint": "2f75ecb14189e660", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee639623aeaccb79", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/unknown/rate (apps/api/src/__tests__/marketplace.test.ts:117)"}, "properties": {"repobilityId": "490b469eda6c83b4", "scanner": "scanner-primary", "fingerprint": "ee639623aeaccb79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-392a1c494d5bc4be", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/hubspot/ratings (apps/api/src/__tests__/marketplace.test.ts:132)"}, "properties": {"repobilityId": "a48e4d628b439c8d", "scanner": "scanner-primary", "fingerprint": "392a1c494d5bc4be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2626575169fa8a88", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:146)"}, "properties": {"repobilityId": "5b7807e6bb1b8e8b", "scanner": "scanner-primary", "fingerprint": "2626575169fa8a88", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-769b3b0384ea35d4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors (apps/api/src/__tests__/marketplace.test.ts:156)"}, "properties": {"repobilityId": "b37c311b37fba205", "scanner": "scanner-primary", "fingerprint": "769b3b0384ea35d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2c0d19f3bd44e712", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/marketplace/connectors/hubspot/curate (apps/api/src/__tests__/marketplace.test.ts:171)"}, "properties": {"repobilityId": "a74fbc5e608d6285", "scanner": "scanner-primary", "fingerprint": "2c0d19f3bd44e712", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a6e5605fe07c7a91", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/marketplace/connectors/hubspot/curate (apps/api/src/__tests__/marketplace.test.ts:183)"}, "properties": {"repobilityId": "7f0d9f43552e78fe", "scanner": "scanner-primary", "fingerprint": "a6e5605fe07c7a91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-854eec79ae446a52", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/entities/missing (apps/api/src/__tests__/freshness-tracking.test.ts:45)"}, "properties": {"repobilityId": "66754fe8be79fc73", "scanner": "scanner-primary", "fingerprint": "854eec79ae446a52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-341f6ac70be21d3b", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/entities/hubspot:contact:001 (apps/api/src/__tests__/freshness-tracking.test.ts:66)"}, "properties": {"repobilityId": "89f5a3120332e728", "scanner": "scanner-primary", "fingerprint": "341f6ac70be21d3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e1b0fe29ea6166ce", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/entities/any (apps/api/src/__tests__/freshness-tracking.test.ts:78)"}, "properties": {"repobilityId": "e338fcb7365aa871", "scanner": "scanner-primary", "fingerprint": "e1b0fe29ea6166ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c1c8cd8855998cf", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/metrics/hubspot (apps/api/src/__tests__/freshness-tracking.test.ts:93)"}, "properties": {"repobilityId": "a5bf1f9dbe3f2423", "scanner": "scanner-primary", "fingerprint": "5c1c8cd8855998cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3fc7163e5a015f54", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/metrics/hubspot?intervalDays=abc (apps/api/src/__tests__/freshness-tracking.test.ts:104)"}, "properties": {"repobilityId": "9c16cdf0afa954c6", "scanner": "scanner-primary", "fingerprint": "3fc7163e5a015f54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-61a591a7b2efb59c", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/stale (apps/api/src/__tests__/freshness-tracking.test.ts:126)"}, "properties": {"repobilityId": "f536077f14ffd7ca", "scanner": "scanner-primary", "fingerprint": "61a591a7b2efb59c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-adfb6473ac31d2b2", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/predict/e1 (apps/api/src/__tests__/freshness-tracking.test.ts:139)"}, "properties": {"repobilityId": "c3ad022c7b867799", "scanner": "scanner-primary", "fingerprint": "adfb6473ac31d2b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a68cd2f72f1700cf", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/predict/e1?connectorId=hubspot (apps/api/src/__tests__/freshness-tracking.test.ts:150)"}, "properties": {"repobilityId": "4a2c70c4391f05ec", "scanner": "scanner-primary", "fingerprint": "a68cd2f72f1700cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f6fbe712587d01d", "level": "error", "message": {"text": "Dangling fetch: GET /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:163)"}, "properties": {"repobilityId": "80e52d71342a106f", "scanner": "scanner-primary", "fingerprint": "8f6fbe712587d01d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-20e4cee92a98f69a", "level": "error", "message": {"text": "Dangling fetch: POST /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:175)"}, "properties": {"repobilityId": "bb0972a7768e887a", "scanner": "scanner-primary", "fingerprint": "20e4cee92a98f69a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c07fd491c0725083", "level": "error", "message": {"text": "Dangling fetch: POST /freshness/slas (apps/api/src/__tests__/freshness-tracking.test.ts:189)"}, "properties": {"repobilityId": "91f90f3909e3f30e", "scanner": "scanner-primary", "fingerprint": "c07fd491c0725083", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1cbdea58c0088ed9", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:57)"}, "properties": {"repobilityId": "911299ecf5135a1a", "scanner": "scanner-primary", "fingerprint": "1cbdea58c0088ed9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ae8895464f6bd53e", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:70)"}, "properties": {"repobilityId": "657a173fa03b3b03", "scanner": "scanner-primary", "fingerprint": "ae8895464f6bd53e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49cbb25a19a16b48", "level": "error", "message": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:82)"}, "properties": {"repobilityId": "b1b5735261b92312", "scanner": "scanner-primary", "fingerprint": "49cbb25a19a16b48", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5ccd85b338018c14", "level": "error", "message": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:92)"}, "properties": {"repobilityId": "0a8352c1771e02dc", "scanner": "scanner-primary", "fingerprint": "5ccd85b338018c14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bffe362e10fb81b1", "level": "error", "message": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:103)"}, "properties": {"repobilityId": "a087a75bf5cfce63", "scanner": "scanner-primary", "fingerprint": "bffe362e10fb81b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0e2174fd38102758", "level": "error", "message": {"text": "Dangling fetch: POST /scim/v2/Users (apps/api/src/__tests__/scim.test.ts:115)"}, "properties": {"repobilityId": "12c87fced9ee5864", "scanner": "scanner-primary", "fingerprint": "0e2174fd38102758", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c87856dddc0a2a83", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/Users/missing-id (apps/api/src/__tests__/scim.test.ts:128)"}, "properties": {"repobilityId": "1358d5871ac3e4a3", "scanner": "scanner-primary", "fingerprint": "c87856dddc0a2a83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b6f305e64a81109", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/Users/user-abc123 (apps/api/src/__tests__/scim.test.ts:141)"}, "properties": {"repobilityId": "78c77af4769ef7e8", "scanner": "scanner-primary", "fingerprint": "5b6f305e64a81109", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-39e0eabbfbb8f2a8", "level": "error", "message": {"text": "Dangling fetch: DELETE /scim/v2/Users/user-1 (apps/api/src/__tests__/scim.test.ts:152)"}, "properties": {"repobilityId": "113e939fd984b454", "scanner": "scanner-primary", "fingerprint": "39e0eabbfbb8f2a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-04bd2fc6246ee916", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/Groups (apps/api/src/__tests__/scim.test.ts:170)"}, "properties": {"repobilityId": "da2c43b9966bf2f2", "scanner": "scanner-primary", "fingerprint": "04bd2fc6246ee916", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80b5b274e31aaf76", "level": "error", "message": {"text": "Dangling fetch: POST /scim/v2/Groups (apps/api/src/__tests__/scim.test.ts:183)"}, "properties": {"repobilityId": "f41eec5ffd7a93a0", "scanner": "scanner-primary", "fingerprint": "80b5b274e31aaf76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-70e6e2e9529f18c2", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/ServiceProviderConfig (apps/api/src/__tests__/scim.test.ts:195)"}, "properties": {"repobilityId": "230ed93d1c0707b2", "scanner": "scanner-primary", "fingerprint": "70e6e2e9529f18c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f417930e30231a32", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi (apps/api/src/__tests__/export.test.ts:34)"}, "properties": {"repobilityId": "4f1ff31a04dbb20c", "scanner": "scanner-primary", "fingerprint": "f417930e30231a32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ffe9637a4cd95a10", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:43)"}, "properties": {"repobilityId": "d40d2c37b0da2eff", "scanner": "scanner-primary", "fingerprint": "ffe9637a4cd95a10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-300c5345424ed428", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:54)"}, "properties": {"repobilityId": "08f9112930081a18", "scanner": "scanner-primary", "fingerprint": "300c5345424ed428", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63791d7cd711b90b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&entityTypes=contact,deal (apps/api/src/__tests__/export.test.ts:63)"}, "properties": {"repobilityId": "54b981bb1670f5ee", "scanner": "scanner-primary", "fingerprint": "63791d7cd711b90b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-30723695b0ebb27d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&since=${since}&until=${until} (apps/api/src/__tests__/export.test.ts:73)"}, "properties": {"repobilityId": "48078e82aedd7f3f", "scanner": "scanner-primary", "fingerprint": "30723695b0ebb27d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c94ce005c04ede1c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeGlossary=false (apps/api/src/__tests__/export.test.ts:82)"}, "properties": {"repobilityId": "f9b0f5c82ef9f0bf", "scanner": "scanner-primary", "fingerprint": "c94ce005c04ede1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b66a6f7f00c16729", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE}&includeMetrics=false (apps/api/src/__tests__/export.test.ts:90)"}, "properties": {"repobilityId": "ec43d06d4a650483", "scanner": "scanner-primary", "fingerprint": "b66a6f7f00c16729", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34fd9981d519daa4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?workspaceId=${WORKSPACE} (apps/api/src/__tests__/export.test.ts:98)"}, "properties": {"repobilityId": "10568bd87986f841", "scanner": "scanner-primary", "fingerprint": "34fd9981d519daa4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1434a6d9a8077a01", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/resilience (apps/api/src/__tests__/admin-resilience.test.ts:44)"}, "properties": {"repobilityId": "d2ff22d38406b9f0", "scanner": "scanner-primary", "fingerprint": "1434a6d9a8077a01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2dab890d4b293d0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:56)"}, "properties": {"repobilityId": "1ae7d7ef291be673", "scanner": "scanner-primary", "fingerprint": "c2dab890d4b293d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-809f675a32331eba", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:69)"}, "properties": {"repobilityId": "d2575cb378bd4fa8", "scanner": "scanner-primary", "fingerprint": "809f675a32331eba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-820556fb148aadec", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:81)"}, "properties": {"repobilityId": "e4160d3dcddca866", "scanner": "scanner-primary", "fingerprint": "820556fb148aadec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-559cfd067a6b10a3", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/hubspot (apps/api/src/__tests__/admin-resilience.test.ts:91)"}, "properties": {"repobilityId": "f6b4828bc673e895", "scanner": "scanner-primary", "fingerprint": "559cfd067a6b10a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8e547cedf9777f1d", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/admin/connectors/resilience/hubspot/reset (apps/api/src/__tests__/admin-resilience.test.ts:105)"}, "properties": {"repobilityId": "b426b10ff69a26fb", "scanner": "scanner-primary", "fingerprint": "8e547cedf9777f1d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a2ffe9827e4cb3a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary (apps/api/src/__tests__/glossary.test.ts:44)"}, "properties": {"repobilityId": "c2e697fd3716c848", "scanner": "scanner-primary", "fingerprint": "a2ffe9827e4cb3a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5c9662500d898814", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:52)"}, "properties": {"repobilityId": "eafa8293f4c40991", "scanner": "scanner-primary", "fingerprint": "5c9662500d898814", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5eb7671dbfe90351", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:63)"}, "properties": {"repobilityId": "8329ab207e8c5017", "scanner": "scanner-primary", "fingerprint": "5eb7671dbfe90351", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b2c3f087fb7b2fe1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary/usage (apps/api/src/__tests__/glossary.test.ts:71)"}, "properties": {"repobilityId": "5c3a94d673056a75", "scanner": "scanner-primary", "fingerprint": "b2c3f087fb7b2fe1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b3dd6dc1d2e2d1e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary/usage?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:79)"}, "properties": {"repobilityId": "f74c23e00c3f7649", "scanner": "scanner-primary", "fingerprint": "4b3dd6dc1d2e2d1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7169d184a236f35", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary/usage?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:90)"}, "properties": {"repobilityId": "992d6f09f9cdd98b", "scanner": "scanner-primary", "fingerprint": "c7169d184a236f35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a7505ed40dc49d15", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/glossary (apps/api/src/__tests__/glossary.test.ts:100)"}, "properties": {"repobilityId": "c4523f8f2b08effb", "scanner": "scanner-primary", "fingerprint": "a7505ed40dc49d15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-913387e0ef710e28", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:111)"}, "properties": {"repobilityId": "97944cbdb157c6e4", "scanner": "scanner-primary", "fingerprint": "913387e0ef710e28", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a516b6690442a2a8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/glossary?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:123)"}, "properties": {"repobilityId": "21f026df5149453c", "scanner": "scanner-primary", "fingerprint": "a516b6690442a2a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1bbe5fa078d0e04d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary/ARR/history (apps/api/src/__tests__/glossary.test.ts:137)"}, "properties": {"repobilityId": "eb119c7eb5a7dc47", "scanner": "scanner-primary", "fingerprint": "1bbe5fa078d0e04d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef351f4fe69bf64f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/glossary/ARR/history?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:148)"}, "properties": {"repobilityId": "a595e95243340301", "scanner": "scanner-primary", "fingerprint": "ef351f4fe69bf64f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-00c168eb8171bbdf", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/glossary/ARR/approve (apps/api/src/__tests__/glossary.test.ts:159)"}, "properties": {"repobilityId": "49634a1703bc2312", "scanner": "scanner-primary", "fingerprint": "00c168eb8171bbdf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9724bc55944217fd", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:169)"}, "properties": {"repobilityId": "bc1dc914671fa3f8", "scanner": "scanner-primary", "fingerprint": "9724bc55944217fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-91bd1ac27467630f", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/glossary/UNKNOWN/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:181)"}, "properties": {"repobilityId": "24ed96786ac32020", "scanner": "scanner-primary", "fingerprint": "91bd1ac27467630f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56df0cf1e566ae74", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/glossary/ARR/approve?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:194)"}, "properties": {"repobilityId": "df8e6ee19c86189d", "scanner": "scanner-primary", "fingerprint": "56df0cf1e566ae74", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ae88454bbe65d54", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/glossary/ARR (apps/api/src/__tests__/glossary.test.ts:210)"}, "properties": {"repobilityId": "f6cc0a5b57ff0d18", "scanner": "scanner-primary", "fingerprint": "1ae88454bbe65d54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0667733ca42d4ceb", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/glossary/NONEXISTENT?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:218)"}, "properties": {"repobilityId": "087da6400804ffb1", "scanner": "scanner-primary", "fingerprint": "0667733ca42d4ceb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ef92d8c88c0ad44", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/glossary/ARR?workspaceId=${WORKSPACE} (apps/api/src/__tests__/glossary.test.ts:226)"}, "properties": {"repobilityId": "a47975602405b960", "scanner": "scanner-primary", "fingerprint": "2ef92d8c88c0ad44", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2beab0440adc6ab6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:37)"}, "properties": {"repobilityId": "4eeb891d54e63acf", "scanner": "scanner-primary", "fingerprint": "2beab0440adc6ab6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b90e57f32ada99e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:48)"}, "properties": {"repobilityId": "9ceee63ac6fc5a6c", "scanner": "scanner-primary", "fingerprint": "8b90e57f32ada99e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd4e3458d438f23e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/api/src/__tests__/batch-recommendations.test.ts:57)"}, "properties": {"repobilityId": "9e9166557056d4a3", "scanner": "scanner-primary", "fingerprint": "fd4e3458d438f23e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-abe91d96e3b2b95e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/analyze (apps/api/src/__tests__/batch-recommendations.test.ts:68)"}, "properties": {"repobilityId": "6f008a105f92af00", "scanner": "scanner-primary", "fingerprint": "abe91d96e3b2b95e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6e45b0106ddf1525", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/analyze (apps/api/src/__tests__/batch-recommendations.test.ts:79)"}, "properties": {"repobilityId": "442fb8b5de50482e", "scanner": "scanner-primary", "fingerprint": "6e45b0106ddf1525", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01f97b6137c2a799", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/group-actions (apps/api/src/__tests__/batch-recommendations.test.ts:90)"}, "properties": {"repobilityId": "f45eaf5c6f086630", "scanner": "scanner-primary", "fingerprint": "01f97b6137c2a799", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9b67041794584fc2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/group-score (apps/api/src/__tests__/batch-recommendations.test.ts:103)"}, "properties": {"repobilityId": "4a6ed3dca7255a90", "scanner": "scanner-primary", "fingerprint": "9b67041794584fc2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ccfa133ff9cd66c6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/group-score (apps/api/src/__tests__/batch-recommendations.test.ts:115)"}, "properties": {"repobilityId": "ea4d142c94ffbd25", "scanner": "scanner-primary", "fingerprint": "ccfa133ff9cd66c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bd34119e945b99cb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/batch/results/sess1 (apps/api/src/__tests__/batch-recommendations.test.ts:126)"}, "properties": {"repobilityId": "45b5e26f90f20687", "scanner": "scanner-primary", "fingerprint": "bd34119e945b99cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a67dc2554d07c721", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/batch/results/missing (apps/api/src/__tests__/batch-recommendations.test.ts:141)"}, "properties": {"repobilityId": "15624d8b85680ae2", "scanner": "scanner-primary", "fingerprint": "a67dc2554d07c721", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-794180f4b7c55a6e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:83)"}, "properties": {"repobilityId": "d3701322974782c7", "scanner": "scanner-primary", "fingerprint": "794180f4b7c55a6e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6680c5fc6fd8b094", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:99)"}, "properties": {"repobilityId": "787caeb58c24be9e", "scanner": "scanner-primary", "fingerprint": "6680c5fc6fd8b094", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aab466937a1c2873", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:112)"}, "properties": {"repobilityId": "3a8c96896d583966", "scanner": "scanner-primary", "fingerprint": "aab466937a1c2873", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b49f4782ad35a03", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:140)"}, "properties": {"repobilityId": "e237a978ead34a94", "scanner": "scanner-primary", "fingerprint": "5b49f4782ad35a03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-68534144ec066a84", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:175)"}, "properties": {"repobilityId": "4933f460f630b219", "scanner": "scanner-primary", "fingerprint": "68534144ec066a84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d6f533f45e5bc1bb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:202)"}, "properties": {"repobilityId": "963debddbb7eae1a", "scanner": "scanner-primary", "fingerprint": "d6f533f45e5bc1bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a4cd360f7ab65b8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:220)"}, "properties": {"repobilityId": "5706aa0d4212b582", "scanner": "scanner-primary", "fingerprint": "1a4cd360f7ab65b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea5e37e6dce06d3f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:237)"}, "properties": {"repobilityId": "faa52fd9b8f1beeb", "scanner": "scanner-primary", "fingerprint": "ea5e37e6dce06d3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cfc04cd20805a45c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-unknown/wrong-secret (apps/api/src/__tests__/webhooks.test.ts:255)"}, "properties": {"repobilityId": "7316c51a6af7c95d", "scanner": "scanner-primary", "fingerprint": "cfc04cd20805a45c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59f84539cea810e7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/webhooks/inst-001/${INSTANCE_SECRET} (apps/api/src/__tests__/webhooks.test.ts:267)"}, "properties": {"repobilityId": "8e4ac669288825d1", "scanner": "scanner-primary", "fingerprint": "59f84539cea810e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9da83b698174abf7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test (apps/api/src/__tests__/webhooks.test.ts:331)"}, "properties": {"repobilityId": "dfd5c6ec48d6a7a0", "scanner": "scanner-primary", "fingerprint": "9da83b698174abf7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fe870a80eeb1b105", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/webhooks/events (apps/api/src/__tests__/webhooks.test.ts:346)"}, "properties": {"repobilityId": "47b244e19680ebae", "scanner": "scanner-primary", "fingerprint": "fe870a80eeb1b105", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a1cfd957aec062da", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test&status=invalid (apps/api/src/__tests__/webhooks.test.ts:352)"}, "properties": {"repobilityId": "9b33d684708018d5", "scanner": "scanner-primary", "fingerprint": "a1cfd957aec062da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cb00311deb118a50", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test&limit=50 (apps/api/src/__tests__/webhooks.test.ts:363)"}, "properties": {"repobilityId": "65780486d3d8ea51", "scanner": "scanner-primary", "fingerprint": "cb00311deb118a50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-61bd31334cf2664b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/webhooks/events?workspaceId=ws-test (apps/api/src/__tests__/webhooks.test.ts:379)"}, "properties": {"repobilityId": "3b2ae1fcb0779282", "scanner": "scanner-primary", "fingerprint": "61bd31334cf2664b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-438e1a367c51d149", "level": "error", "message": {"text": "Dangling fetch: GET /performance/stats (apps/api/src/__tests__/performance.test.ts:54)"}, "properties": {"repobilityId": "b956b1bba47a91ec", "scanner": "scanner-primary", "fingerprint": "438e1a367c51d149", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-35147579adad8693", "level": "error", "message": {"text": "Dangling fetch: GET /performance/stats?window=15 (apps/api/src/__tests__/performance.test.ts:62)"}, "properties": {"repobilityId": "289a8f6afab1e81e", "scanner": "scanner-primary", "fingerprint": "35147579adad8693", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ddd9d457db4738f8", "level": "error", "message": {"text": "Dangling fetch: GET /performance/stats (apps/api/src/__tests__/performance.test.ts:68)"}, "properties": {"repobilityId": "9259375eaea00952", "scanner": "scanner-primary", "fingerprint": "ddd9d457db4738f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d80a5fe34c07d31", "level": "error", "message": {"text": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:75)"}, "properties": {"repobilityId": "68c204e384ac3976", "scanner": "scanner-primary", "fingerprint": "5d80a5fe34c07d31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-115d17df4a9d79f2", "level": "error", "message": {"text": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:84)"}, "properties": {"repobilityId": "9ebb8851f504efb4", "scanner": "scanner-primary", "fingerprint": "115d17df4a9d79f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5257f9b9790a428f", "level": "error", "message": {"text": "Dangling fetch: GET /performance/connectors (apps/api/src/__tests__/performance.test.ts:90)"}, "properties": {"repobilityId": "dd3952de33d925af", "scanner": "scanner-primary", "fingerprint": "5257f9b9790a428f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-64e1e9550510c2ca", "level": "error", "message": {"text": "Dangling fetch: GET /performance/metrics (apps/api/src/__tests__/performance.test.ts:97)"}, "properties": {"repobilityId": "15f76e7cf019cf74", "scanner": "scanner-primary", "fingerprint": "64e1e9550510c2ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-853d0d728db5db39", "level": "error", "message": {"text": "Dangling fetch: GET /performance/metrics (apps/api/src/__tests__/performance.test.ts:105)"}, "properties": {"repobilityId": "1f339aa33e72b3c6", "scanner": "scanner-primary", "fingerprint": "853d0d728db5db39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5409827c5f44b8f8", "level": "error", "message": {"text": "Dangling fetch: POST /performance/record (apps/api/src/__tests__/performance.test.ts:112)"}, "properties": {"repobilityId": "2042b1bed5eb0078", "scanner": "scanner-primary", "fingerprint": "5409827c5f44b8f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a4652a5c91cd540c", "level": "error", "message": {"text": "Dangling fetch: POST /performance/record (apps/api/src/__tests__/performance.test.ts:123)"}, "properties": {"repobilityId": "db342e69af36d778", "scanner": "scanner-primary", "fingerprint": "a4652a5c91cd540c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-410a32a21cc71549", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-performance.test.ts:59)"}, "properties": {"repobilityId": "88ffffd12091dd50", "scanner": "scanner-primary", "fingerprint": "410a32a21cc71549", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9ea284637dbc95fc", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/conn-2/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-performance.test.ts:71)"}, "properties": {"repobilityId": "430c6f120799f27b", "scanner": "scanner-primary", "fingerprint": "9ea284637dbc95fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c045f2db5954b4e", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=not-a-uuid (apps/api/src/__tests__/connector-performance.test.ts:81)"}, "properties": {"repobilityId": "e5a4490eb04eac8c", "scanner": "scanner-primary", "fingerprint": "3c045f2db5954b4e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc86fe9423f97e15", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS}&limit=5 (apps/api/src/__tests__/connector-performance.test.ts:90)"}, "properties": {"repobilityId": "8efdd6dc82d113aa", "scanner": "scanner-primary", "fingerprint": "cc86fe9423f97e15", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8490917ce8b78bc9", "level": "error", "message": {"text": "Dangling fetch: GET /connectors/conn-1/performance-stats?workspaceId=${VALID_WS} (apps/api/src/__tests__/connector-performance.test.ts:99)"}, "properties": {"repobilityId": "f907cec7ca0ea8f1", "scanner": "scanner-primary", "fingerprint": "8490917ce8b78bc9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5096414aaa9dcbc6", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:123)"}, "properties": {"repobilityId": "41fd0ea59ced3704", "scanner": "scanner-primary", "fingerprint": "5096414aaa9dcbc6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9e0b381f0f73d261", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:142)"}, "properties": {"repobilityId": "0544b908c463d0f5", "scanner": "scanner-primary", "fingerprint": "9e0b381f0f73d261", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6ff9caa018fba97", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:158)"}, "properties": {"repobilityId": "2a14c761c3ab4a34", "scanner": "scanner-primary", "fingerprint": "e6ff9caa018fba97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df06cc800a2539a7", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:175)"}, "properties": {"repobilityId": "0886165f5abdcb40", "scanner": "scanner-primary", "fingerprint": "df06cc800a2539a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-33d82442d14f1265", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:190)"}, "properties": {"repobilityId": "81f919aa30bc9a63", "scanner": "scanner-primary", "fingerprint": "33d82442d14f1265", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-59a31787314fc445", "level": "error", "message": {"text": "Dangling fetch: POST /connectors/conn-1/optimize (apps/api/src/__tests__/connector-performance.test.ts:206)"}, "properties": {"repobilityId": "5024554e05d06f66", "scanner": "scanner-primary", "fingerprint": "59a31787314fc445", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e699ef0267ff7c3b", "level": "error", "message": {"text": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:62)"}, "properties": {"repobilityId": "73b3cb7bd1da4857", "scanner": "scanner-primary", "fingerprint": "e699ef0267ff7c3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bdd941fe8055a8fa", "level": "error", "message": {"text": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:69)"}, "properties": {"repobilityId": "69c985c568720d2b", "scanner": "scanner-primary", "fingerprint": "bdd941fe8055a8fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-993104337f61495f", "level": "error", "message": {"text": "Dangling fetch: GET /sso (apps/api/src/__tests__/sso-config.test.ts:75)"}, "properties": {"repobilityId": "1e6610c52cfa65a7", "scanner": "scanner-primary", "fingerprint": "993104337f61495f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1e3de7f9039a7f7b", "level": "error", "message": {"text": "Dangling fetch: GET /sso/saml (apps/api/src/__tests__/sso-config.test.ts:83)"}, "properties": {"repobilityId": "e036c7f97f2e823d", "scanner": "scanner-primary", "fingerprint": "1e3de7f9039a7f7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-468e777ba0f5908c", "level": "error", "message": {"text": "Dangling fetch: GET /sso/unknown-provider (apps/api/src/__tests__/sso-config.test.ts:88)"}, "properties": {"repobilityId": "295e1b92307b8fd5", "scanner": "scanner-primary", "fingerprint": "468e777ba0f5908c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16a583e7ddab9276", "level": "error", "message": {"text": "Dangling fetch: GET /sso/saml (apps/api/src/__tests__/sso-config.test.ts:94)"}, "properties": {"repobilityId": "19cb3c79fff88780", "scanner": "scanner-primary", "fingerprint": "16a583e7ddab9276", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-abbc8eecbb6e97fb", "level": "error", "message": {"text": "Dangling fetch: GET /c-1/health (apps/api/src/__tests__/connector-health.test.ts:47)"}, "properties": {"repobilityId": "10e83ff8729dbc86", "scanner": "scanner-primary", "fingerprint": "abbc8eecbb6e97fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-958166f4cd3d0e51", "level": "error", "message": {"text": "Dangling fetch: GET /c-1/health (apps/api/src/__tests__/connector-health.test.ts:55)"}, "properties": {"repobilityId": "8ca5f16862ef85fd", "scanner": "scanner-primary", "fingerprint": "958166f4cd3d0e51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f77ae953fc9d2309", "level": "error", "message": {"text": "Dangling fetch: GET /c-1/health-history (apps/api/src/__tests__/connector-health.test.ts:63)"}, "properties": {"repobilityId": "b8d108e1f566218a", "scanner": "scanner-primary", "fingerprint": "f77ae953fc9d2309", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8f394c66033b3803", "level": "error", "message": {"text": "Dangling fetch: GET /c-1/health-history?days=14 (apps/api/src/__tests__/connector-health.test.ts:71)"}, "properties": {"repobilityId": "23f5a52792843d04", "scanner": "scanner-primary", "fingerprint": "8f394c66033b3803", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-51f95905fcd4911d", "level": "error", "message": {"text": "Dangling fetch: POST /c-1/recovery-action (apps/api/src/__tests__/connector-health.test.ts:80)"}, "properties": {"repobilityId": "15b15fe41994ed8a", "scanner": "scanner-primary", "fingerprint": "51f95905fcd4911d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ead61ece5291c544", "level": "error", "message": {"text": "Dangling fetch: POST /c-1/recovery-action (apps/api/src/__tests__/connector-health.test.ts:90)"}, "properties": {"repobilityId": "205784867e84e698", "scanner": "scanner-primary", "fingerprint": "ead61ece5291c544", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-263b444f18d60daa", "level": "error", "message": {"text": "Dangling fetch: DELETE /health-alerts/a-1 (apps/api/src/__tests__/connector-health.test.ts:112)"}, "properties": {"repobilityId": "c2d36fcc74b01322", "scanner": "scanner-primary", "fingerprint": "263b444f18d60daa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-475af763d081bec3", "level": "error", "message": {"text": "Dangling fetch: GET /c-1/recovery-suggestions (apps/api/src/__tests__/connector-health.test.ts:124)"}, "properties": {"repobilityId": "ce39c2e6b568591a", "scanner": "scanner-primary", "fingerprint": "475af763d081bec3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d39c7dedb72d59f2", "level": "error", "message": {"text": "Dangling fetch: GET /jobs/j2 (apps/api/src/__tests__/workspace-export.test.ts:154)"}, "properties": {"repobilityId": "1ca9ef9c282e3fa4", "scanner": "scanner-primary", "fingerprint": "d39c7dedb72d59f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb4cd71e32176bea", "level": "error", "message": {"text": "Dangling fetch: GET /jobs/missing (apps/api/src/__tests__/workspace-export.test.ts:166)"}, "properties": {"repobilityId": "83feb1ad144dc045", "scanner": "scanner-primary", "fingerprint": "eb4cd71e32176bea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2ad321a3b14c6404", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:36)"}, "properties": {"repobilityId": "07e8dfb1c77b3a76", "scanner": "scanner-primary", "fingerprint": "2ad321a3b14c6404", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8027bcd2222096ef", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:47)"}, "properties": {"repobilityId": "4c2d7edd28904313", "scanner": "scanner-primary", "fingerprint": "8027bcd2222096ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8258514a365dda08", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:56)"}, "properties": {"repobilityId": "3bb68c71060a8e71", "scanner": "scanner-primary", "fingerprint": "8258514a365dda08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab298fc9e3c09dc5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/expand (apps/api/src/__tests__/query-expansion.test.ts:65)"}, "properties": {"repobilityId": "61a8b50968f940c6", "scanner": "scanner-primary", "fingerprint": "ab298fc9e3c09dc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-318bc827629fbfc0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/refine (apps/api/src/__tests__/query-expansion.test.ts:76)"}, "properties": {"repobilityId": "fd0eb98e9e23468a", "scanner": "scanner-primary", "fingerprint": "318bc827629fbfc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0e4a210e6afeb7b1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/refine (apps/api/src/__tests__/query-expansion.test.ts:90)"}, "properties": {"repobilityId": "07c4e07a8dd68c4e", "scanner": "scanner-primary", "fingerprint": "0e4a210e6afeb7b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0129280c6f42d902", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/sessions/sess1/feedback (apps/api/src/__tests__/query-expansion.test.ts:101)"}, "properties": {"repobilityId": "d46b4e6e83cbd8d6", "scanner": "scanner-primary", "fingerprint": "0129280c6f42d902", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dffa7e40e3f36c4e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-expansion/sessions/sess1/feedback (apps/api/src/__tests__/query-expansion.test.ts:112)"}, "properties": {"repobilityId": "eaeeefa0d7932465", "scanner": "scanner-primary", "fingerprint": "dffa7e40e3f36c4e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7e7abdd412055bd4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/query-expansion/sessions/sess1 (apps/api/src/__tests__/query-expansion.test.ts:123)"}, "properties": {"repobilityId": "3f8a8e136862ea86", "scanner": "scanner-primary", "fingerprint": "7e7abdd412055bd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5105343466fb79cc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/query-expansion/sessions/missing (apps/api/src/__tests__/query-expansion.test.ts:137)"}, "properties": {"repobilityId": "55edd4bcac94d701", "scanner": "scanner-primary", "fingerprint": "5105343466fb79cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab69441012aea4f3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/pii/access-audit (apps/api/src/__tests__/pii-masking-audit.test.ts:23)"}, "properties": {"repobilityId": "1dd5695ad2b619fb", "scanner": "scanner-primary", "fingerprint": "ab69441012aea4f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-30a097cb8fc2e2b7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/pii/access-audit (apps/api/src/__tests__/pii-masking-audit.test.ts:34)"}, "properties": {"repobilityId": "b9357a823347f848", "scanner": "scanner-primary", "fingerprint": "30a097cb8fc2e2b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7f7ed703b14dca3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/pii/fields (apps/api/src/__tests__/pii-masking-audit.test.ts:46)"}, "properties": {"repobilityId": "c72d324c539ff7e6", "scanner": "scanner-primary", "fingerprint": "b7f7ed703b14dca3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6794fd86a4d165af", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:59)"}, "properties": {"repobilityId": "00281ae1f0722f8d", "scanner": "scanner-primary", "fingerprint": "6794fd86a4d165af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b3458591f864840", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:72)"}, "properties": {"repobilityId": "77112221f3f85163", "scanner": "scanner-primary", "fingerprint": "3b3458591f864840", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a933c71291dbe62", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/hubspot/email/strategy (apps/api/src/__tests__/pii-masking-audit.test.ts:85)"}, "properties": {"repobilityId": "b8291d4beb4ce265", "scanner": "scanner-primary", "fingerprint": "4a933c71291dbe62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ea0d64467222835", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/api/src/__tests__/pii-masking-audit.test.ts:100)"}, "properties": {"repobilityId": "ad51f9b0759b773a", "scanner": "scanner-primary", "fingerprint": "3ea0d64467222835", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d8fe28e186fbea04", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/api/src/__tests__/pii-masking-audit.test.ts:113)"}, "properties": {"repobilityId": "468adae625980de8", "scanner": "scanner-primary", "fingerprint": "d8fe28e186fbea04", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9d46798e13f832e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:126)"}, "properties": {"repobilityId": "04aec0aec9a83350", "scanner": "scanner-primary", "fingerprint": "d9d46798e13f832e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba74d48d8f7b06af", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:140)"}, "properties": {"repobilityId": "59a7432605dd99af", "scanner": "scanner-primary", "fingerprint": "ba74d48d8f7b06af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7767a7e5cc0dedd1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/api/src/__tests__/pii-masking-audit.test.ts:152)"}, "properties": {"repobilityId": "bdf9aea63dbbd59b", "scanner": "scanner-primary", "fingerprint": "7767a7e5cc0dedd1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef9acc0075b8fa1a", "level": "error", "message": {"text": "Dangling fetch: POST /accept/valid-token-abc (apps/api/src/__tests__/team-management.test.ts:165)"}, "properties": {"repobilityId": "9c6e648977b949f8", "scanner": "scanner-primary", "fingerprint": "ef9acc0075b8fa1a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3076589b687aa979", "level": "error", "message": {"text": "Dangling fetch: POST /accept/expired-token (apps/api/src/__tests__/team-management.test.ts:176)"}, "properties": {"repobilityId": "8aefc66399a80415", "scanner": "scanner-primary", "fingerprint": "3076589b687aa979", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e8806f86cc50cad3", "level": "error", "message": {"text": "Dangling fetch: PUT /u1/role (apps/api/src/__tests__/team-management.test.ts:189)"}, "properties": {"repobilityId": "acf872b83a065c77", "scanner": "scanner-primary", "fingerprint": "e8806f86cc50cad3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-50972ed402c0f9a0", "level": "error", "message": {"text": "Dangling fetch: PUT /u1/role (apps/api/src/__tests__/team-management.test.ts:203)"}, "properties": {"repobilityId": "f8d00b6aaa85c227", "scanner": "scanner-primary", "fingerprint": "50972ed402c0f9a0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3a78eec74f17821", "level": "error", "message": {"text": "Dangling fetch: PUT /nonexistent/role (apps/api/src/__tests__/team-management.test.ts:216)"}, "properties": {"repobilityId": "525375cc179002cf", "scanner": "scanner-primary", "fingerprint": "b3a78eec74f17821", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a1cd13ed7d4a8ced", "level": "error", "message": {"text": "Dangling fetch: DELETE /u1 (apps/api/src/__tests__/team-management.test.ts:231)"}, "properties": {"repobilityId": "7b7bcdd59f244e3e", "scanner": "scanner-primary", "fingerprint": "a1cd13ed7d4a8ced", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44a00fa66f34d0d5", "level": "error", "message": {"text": "Dangling fetch: DELETE /notexist (apps/api/src/__tests__/team-management.test.ts:242)"}, "properties": {"repobilityId": "53395677120d015a", "scanner": "scanner-primary", "fingerprint": "44a00fa66f34d0d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-883885552973d0b5", "level": "error", "message": {"text": "Dangling fetch: DELETE /invitations/inv-1 (apps/api/src/__tests__/team-management.test.ts:271)"}, "properties": {"repobilityId": "8bfb268cd1acef6f", "scanner": "scanner-primary", "fingerprint": "883885552973d0b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1d8e1a7c7e0c9332", "level": "error", "message": {"text": "Dangling fetch: DELETE /invitations/missing (apps/api/src/__tests__/team-management.test.ts:282)"}, "properties": {"repobilityId": "70b83547aee63846", "scanner": "scanner-primary", "fingerprint": "1d8e1a7c7e0c9332", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-55e93631aab58326", "level": "error", "message": {"text": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:30)"}, "properties": {"repobilityId": "937f02e4455dfeef", "scanner": "scanner-primary", "fingerprint": "55e93631aab58326", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f65bb53096311edd", "level": "error", "message": {"text": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:38)"}, "properties": {"repobilityId": "4ee29e72fcae1e68", "scanner": "scanner-primary", "fingerprint": "f65bb53096311edd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f6f199a3fac627a2", "level": "error", "message": {"text": "Dangling fetch: GET /proactive/agents/agent-1/profile (apps/api/src/__tests__/proactive-context.test.ts:49)"}, "properties": {"repobilityId": "65f2d0e7214d8cd9", "scanner": "scanner-primary", "fingerprint": "f6f199a3fac627a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95b6b00fb14cb133", "level": "error", "message": {"text": "Dangling fetch: GET /proactive/agents/agent-1/proactive-preview (apps/api/src/__tests__/proactive-context.test.ts:64)"}, "properties": {"repobilityId": "7bc3ed98201896b2", "scanner": "scanner-primary", "fingerprint": "95b6b00fb14cb133", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bee0da0f5697fbbf", "level": "error", "message": {"text": "Dangling fetch: GET /proactive/agents/agent-1/acceptance-stats (apps/api/src/__tests__/proactive-context.test.ts:78)"}, "properties": {"repobilityId": "109df67896346786", "scanner": "scanner-primary", "fingerprint": "bee0da0f5697fbbf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-00ca29207d736171", "level": "error", "message": {"text": "Dangling fetch: POST /proactive/agents/agent-1/proactive-settings (apps/api/src/__tests__/proactive-context.test.ts:90)"}, "properties": {"repobilityId": "08cfdc14318cd5ae", "scanner": "scanner-primary", "fingerprint": "00ca29207d736171", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-457660a35ed8359f", "level": "error", "message": {"text": "Dangling fetch: POST /proactive/agents/agent-1/proactive-settings (apps/api/src/__tests__/proactive-context.test.ts:102)"}, "properties": {"repobilityId": "5ae7f086610ec130", "scanner": "scanner-primary", "fingerprint": "457660a35ed8359f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97f63618145fecb3", "level": "error", "message": {"text": "Dangling fetch: POST /proactive/proactive/feedback (apps/api/src/__tests__/proactive-context.test.ts:114)"}, "properties": {"repobilityId": "a48461e20c94323f", "scanner": "scanner-primary", "fingerprint": "97f63618145fecb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-121bf2e9589d676f", "level": "error", "message": {"text": "Dangling fetch: POST /proactive/proactive/feedback (apps/api/src/__tests__/proactive-context.test.ts:126)"}, "properties": {"repobilityId": "eaf5423417fac2ba", "scanner": "scanner-primary", "fingerprint": "121bf2e9589d676f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d161fdeb430c97d", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:23)"}, "properties": {"repobilityId": "b83b200cf54ef919", "scanner": "scanner-primary", "fingerprint": "3d161fdeb430c97d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49476c1b883846e6", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:31)"}, "properties": {"repobilityId": "93d6b4baa45fcad1", "scanner": "scanner-primary", "fingerprint": "49476c1b883846e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1cc1be96d405048f", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:37)"}, "properties": {"repobilityId": "dca4cc25749d2605", "scanner": "scanner-primary", "fingerprint": "1cc1be96d405048f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-930ffc1b9b60e71f", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:45)"}, "properties": {"repobilityId": "7c52113944700e1a", "scanner": "scanner-primary", "fingerprint": "930ffc1b9b60e71f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-402c514f187c5263", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:51)"}, "properties": {"repobilityId": "7efb48d49788fb21", "scanner": "scanner-primary", "fingerprint": "402c514f187c5263", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f9e4884c06b94e0", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:59)"}, "properties": {"repobilityId": "bc703561088296ae", "scanner": "scanner-primary", "fingerprint": "3f9e4884c06b94e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a47e6e87b5005dd", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:66)"}, "properties": {"repobilityId": "778a05d9c36b668d", "scanner": "scanner-primary", "fingerprint": "0a47e6e87b5005dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6255631441f1d1d0", "level": "error", "message": {"text": "Dangling fetch: GET /admin (apps/api/src/__tests__/middleware/admin-auth.test.ts:73)"}, "properties": {"repobilityId": "075a90ed5a2bac75", "scanner": "scanner-primary", "fingerprint": "6255631441f1d1d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ff0f600044257b9e", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:33)"}, "properties": {"repobilityId": "128d0d5e9ed75149", "scanner": "scanner-primary", "fingerprint": "ff0f600044257b9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f6279b2f19dae91", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:39)"}, "properties": {"repobilityId": "b4a93977c3cd1465", "scanner": "scanner-primary", "fingerprint": "2f6279b2f19dae91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5274bfd718be9889", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:45)"}, "properties": {"repobilityId": "b086de5c1ad022b2", "scanner": "scanner-primary", "fingerprint": "5274bfd718be9889", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a2381efe1246726", "level": "error", "message": {"text": "Dangling fetch: GET /protected (apps/api/src/__tests__/middleware/auth.test.ts:52)"}, "properties": {"repobilityId": "cb979bacef45742c", "scanner": "scanner-primary", "fingerprint": "4a2381efe1246726", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bc9c99288b87b216", "level": "error", "message": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:62)"}, "properties": {"repobilityId": "86827699db4972b2", "scanner": "scanner-primary", "fingerprint": "bc9c99288b87b216", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49f6e5577fbdce60", "level": "error", "message": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:68)"}, "properties": {"repobilityId": "6724616b2b0833d3", "scanner": "scanner-primary", "fingerprint": "49f6e5577fbdce60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-986d609b694250b0", "level": "error", "message": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:75)"}, "properties": {"repobilityId": "3f75a5b50ab52653", "scanner": "scanner-primary", "fingerprint": "986d609b694250b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0846da814e06afbb", "level": "error", "message": {"text": "Dangling fetch: GET /ws (apps/api/src/__tests__/middleware/auth.test.ts:82)"}, "properties": {"repobilityId": "f6c64e1c5d8b294a", "scanner": "scanner-primary", "fingerprint": "0846da814e06afbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-817d0e917fa0e355", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/index-repair/scan (apps/dashboard/components/index-corruption-detector.tsx:49)"}, "properties": {"repobilityId": "5782cc8205b72500", "scanner": "scanner-primary", "fingerprint": "817d0e917fa0e355", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-715efd92a495c766", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/webhooks/${selectedWebhookId}/test-delivery (apps/dashboard/components/webhook-test-panel.tsx:43)"}, "properties": {"repobilityId": "7839e29f1bae8db2", "scanner": "scanner-primary", "fingerprint": "715efd92a495c766", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fe61bc5aebe35c46", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/freshness/stale?${params} (apps/dashboard/components/staleness-alerts-panel.tsx:32)"}, "properties": {"repobilityId": "dc6c829b5b6cb97c", "scanner": "scanner-primary", "fingerprint": "fe61bc5aebe35c46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2876c2237684e9c8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-test-panel.tsx:42)"}, "properties": {"repobilityId": "6e2121daf0b04dc7", "scanner": "scanner-primary", "fingerprint": "2876c2237684e9c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-152b3c833dc387b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/validation/failures?${params.toString()} (apps/dashboard/components/validation-failure-explorer.tsx:43)"}, "properties": {"repobilityId": "5e7f7de690747f19", "scanner": "scanner-primary", "fingerprint": "152b3c833dc387b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae84cf1f757b6ed4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/validation/failures/${failureId}/acknowledge (apps/dashboard/components/validation-failure-explorer.tsx:70)"}, "properties": {"repobilityId": "3d4e402ba8552f1f", "scanner": "scanner-primary", "fingerprint": "ae84cf1f757b6ed4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-95b3d29bbd6c8c38", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/auto-tools (apps/dashboard/components/auto-tool-registry.tsx:57)"}, "properties": {"repobilityId": "3d417a5032c468dd", "scanner": "scanner-primary", "fingerprint": "95b3d29bbd6c8c38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb79db2546d19c14", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workflows/curated/${template.id}/instantiate (apps/dashboard/components/workflow-installer.tsx:50)"}, "properties": {"repobilityId": "4aa0df6ef09e1de2", "scanner": "scanner-primary", "fingerprint": "eb79db2546d19c14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a1fdd12425a855a7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/performance/stats?window=${windowMinutes} (apps/dashboard/components/profiler-dashboard.tsx:68)"}, "properties": {"repobilityId": "fa36844236be50c5", "scanner": "scanner-primary", "fingerprint": "a1fdd12425a855a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b3c62855be07ce0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/performance/connectors?window=${windowMinutes} (apps/dashboard/components/profiler-dashboard.tsx:71)"}, "properties": {"repobilityId": "7bfb44f82297a911", "scanner": "scanner-primary", "fingerprint": "5b3c62855be07ce0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-977017b67c825770", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/graphql (apps/dashboard/components/graphql-query-builder.tsx:81)"}, "properties": {"repobilityId": "20d72945c4715a0f", "scanner": "scanner-primary", "fingerprint": "977017b67c825770", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a86d24aa78834652", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/suggestions (apps/dashboard/components/query-suggestions-widget.tsx:32)"}, "properties": {"repobilityId": "c922c4e0592a8eab", "scanner": "scanner-primary", "fingerprint": "a86d24aa78834652", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dc6655be66900b08", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sync-optimizer/config/${connectorId} (apps/dashboard/components/concurrency-tuning-wizard.tsx:30)"}, "properties": {"repobilityId": "8867f3289a3e43f8", "scanner": "scanner-primary", "fingerprint": "dc6655be66900b08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-385c06862e29a412", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/sync-optimizer/tuning/${connectorId} (apps/dashboard/components/concurrency-tuning-wizard.tsx:41)"}, "properties": {"repobilityId": "c6fcd2f3c40bcbbd", "scanner": "scanner-primary", "fingerprint": "385c06862e29a412", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3f38754ff0d353dc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/freshness/metrics/${connectorId}?intervalDays=${intervalDays} (apps/dashboard/components/freshness-timeline.tsx:132)"}, "properties": {"repobilityId": "f43ae074c063de8a", "scanner": "scanner-primary", "fingerprint": "3f38754ff0d353dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f1e18677b43c45bc", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/alerts/rules (apps/dashboard/components/alert-rule-editor.tsx:51)"}, "properties": {"repobilityId": "4a4ed5bb9a62cc58", "scanner": "scanner-primary", "fingerprint": "f1e18677b43c45bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-767ad6208760bdc6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/resilience/${connectorId} (apps/dashboard/components/connector-resilience-config.tsx:60)"}, "properties": {"repobilityId": "dda9f0eb223b0f7c", "scanner": "scanner-primary", "fingerprint": "767ad6208760bdc6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4124c8d624c7f074", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/connectors/resilience/${connectorId} (apps/dashboard/components/connector-resilience-config.tsx:77)"}, "properties": {"repobilityId": "c85c37b70cd34803", "scanner": "scanner-primary", "fingerprint": "4124c8d624c7f074", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ef194decc60e189f", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/admin/connectors/resilience/${connectorId}/reset (apps/dashboard/components/connector-resilience-config.tsx:96)"}, "properties": {"repobilityId": "1b5787e3cbd0a54b", "scanner": "scanner-primary", "fingerprint": "ef194decc60e189f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f8c66fa57b88b056", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/data/export?${params.toString()} (apps/dashboard/components/export-configurator.tsx:27)"}, "properties": {"repobilityId": "c1da72a3d7453201", "scanner": "scanner-primary", "fingerprint": "f8c66fa57b88b056", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57314dab802c987a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/lineage/${encodeURIComponent(entityId)} (apps/dashboard/components/lineage-graph-viewer.tsx:73)"}, "properties": {"repobilityId": "b082cf77e1011733", "scanner": "scanner-primary", "fingerprint": "57314dab802c987a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-198279559be6fe6f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/audit-logs?${params.toString()} (apps/dashboard/components/audit-log-viewer.tsx:47)"}, "properties": {"repobilityId": "4885141f39c680d3", "scanner": "scanner-primary", "fingerprint": "198279559be6fe6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1058ba4443db26ea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/vector-health?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/components/vector-health-monitor.tsx:75)"}, "properties": {"repobilityId": "831c496792972e46", "scanner": "scanner-primary", "fingerprint": "1058ba4443db26ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c08f35ce3de2fe9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/vector-health/run (apps/dashboard/components/vector-health-monitor.tsx:91)"}, "properties": {"repobilityId": "0ddcbc79cb268b67", "scanner": "scanner-primary", "fingerprint": "4c08f35ce3de2fe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffc834eed8941d45", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/compliance/audit-export (apps/dashboard/components/audit-export-wizard.tsx:42)"}, "properties": {"repobilityId": "9fcc6767004cbc89", "scanner": "scanner-primary", "fingerprint": "ffc834eed8941d45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-249d404c98110573", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/subscriptions (apps/dashboard/components/notification-preferences.tsx:33)"}, "properties": {"repobilityId": "5bc479ec86ee190e", "scanner": "scanner-primary", "fingerprint": "249d404c98110573", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3508a6bde49dd0fa", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/subscriptions (apps/dashboard/components/notification-preferences.tsx:51)"}, "properties": {"repobilityId": "fc8896d5826317d5", "scanner": "scanner-primary", "fingerprint": "3508a6bde49dd0fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bac00ce6eb5db15a", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/entities/subscriptions/${subscriptionId} (apps/dashboard/components/notification-preferences.tsx:77)"}, "properties": {"repobilityId": "472c26ca9cb02515", "scanner": "scanner-primary", "fingerprint": "bac00ce6eb5db15a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-34526794c9aa5dee", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/enrichments (apps/dashboard/components/enrichment-sources-manager.tsx:38)"}, "properties": {"repobilityId": "78843e7cd6f1a534", "scanner": "scanner-primary", "fingerprint": "34526794c9aa5dee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-acc565cacaf7559e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/enrichments/coverage (apps/dashboard/components/enrichment-sources-manager.tsx:39)"}, "properties": {"repobilityId": "932f85a152458c3a", "scanner": "scanner-primary", "fingerprint": "acc565cacaf7559e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db19eb7cc53a11d2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/enrichments/configure/${sourceId} (apps/dashboard/components/enrichment-sources-manager.tsx:63)"}, "properties": {"repobilityId": "f9502526747ecb11", "scanner": "scanner-primary", "fingerprint": "db19eb7cc53a11d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc8964a22792796f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/natural-language (apps/dashboard/components/query-input.tsx:46)"}, "properties": {"repobilityId": "f0d3b2804b1d0217", "scanner": "scanner-primary", "fingerprint": "cc8964a22792796f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-291003db05286099", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/natural-language/feedback (apps/dashboard/components/query-input.tsx:65)"}, "properties": {"repobilityId": "8695a00efb466079", "scanner": "scanner-primary", "fingerprint": "291003db05286099", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5999a9ebff58ac8f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/changes?limit=200 (apps/dashboard/components/change-metrics.tsx:62)"}, "properties": {"repobilityId": "d065b7b0de7dda7d", "scanner": "scanner-primary", "fingerprint": "5999a9ebff58ac8f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c01513c72749727c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/alerts (apps/dashboard/components/anomaly-alert-dashboard.tsx:50)"}, "properties": {"repobilityId": "22732e81f7eb11b0", "scanner": "scanner-primary", "fingerprint": "c01513c72749727c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b8d99f492ba03782", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/compliance/alerts/${encodeURIComponent(alertId)}/acknowledge (apps/dashboard/components/anomaly-alert-dashboard.tsx:68)"}, "properties": {"repobilityId": "7e89ea82b59d130d", "scanner": "scanner-primary", "fingerprint": "b8d99f492ba03782", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6cb7f3cdb6f3b5a4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/billing/usage (apps/dashboard/components/billing-usage-chart.tsx:72)"}, "properties": {"repobilityId": "86a9594ee700f953", "scanner": "scanner-primary", "fingerprint": "6cb7f3cdb6f3b5a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-631cab527ec94f82", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/billing/periods (apps/dashboard/components/billing-usage-chart.tsx:73)"}, "properties": {"repobilityId": "62ce959c11e1ac1f", "scanner": "scanner-primary", "fingerprint": "631cab527ec94f82", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-927ac345727df735", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/analyze (apps/dashboard/components/group-analysis-results.tsx:56)"}, "properties": {"repobilityId": "4b03e5df21c9b649", "scanner": "scanner-primary", "fingerprint": "927ac345727df735", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e05a15e4c62170a3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/group-actions (apps/dashboard/components/group-analysis-results.tsx:61)"}, "properties": {"repobilityId": "7cc3cc4d1dbc37df", "scanner": "scanner-primary", "fingerprint": "e05a15e4c62170a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1012867d67f8ca35", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${connectorId}/alerts (apps/dashboard/components/alert-action-logger.tsx:48)"}, "properties": {"repobilityId": "cda6d5f2548f2f11", "scanner": "scanner-primary", "fingerprint": "1012867d67f8ca35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cab1f4a7d4688329", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/export?${params.toString()} (apps/dashboard/components/export-builder.tsx:36)"}, "properties": {"repobilityId": "cc9692cf808074c9", "scanner": "scanner-primary", "fingerprint": "cab1f4a7d4688329", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0fa77e267ec6f2f3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/snapshots (apps/dashboard/components/snapshot-manager.tsx:49)"}, "properties": {"repobilityId": "fa3ade702da55200", "scanner": "scanner-primary", "fingerprint": "0fa77e267ec6f2f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-64fb456205078e0d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/snapshots (apps/dashboard/components/snapshot-manager.tsx:73)"}, "properties": {"repobilityId": "0a92b3fd2e862962", "scanner": "scanner-primary", "fingerprint": "64fb456205078e0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57aff7d52418a41a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/snapshots/${snapshotId}/restore (apps/dashboard/components/snapshot-manager.tsx:97)"}, "properties": {"repobilityId": "5c5192ae43593959", "scanner": "scanner-primary", "fingerprint": "57aff7d52418a41a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d83826a7d6461593", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/enrichment/sources/${id}/reliability (apps/dashboard/components/source-reliability-scorecard.tsx:34)"}, "properties": {"repobilityId": "44b12ceca026fff3", "scanner": "scanner-primary", "fingerprint": "d83826a7d6461593", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-383fa611fd32040f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/enrichment/quality/${connectorId} (apps/dashboard/components/completeness-heatmap.tsx:33)"}, "properties": {"repobilityId": "0b6c54d4a9b6301d", "scanner": "scanner-primary", "fingerprint": "383fa611fd32040f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22a6540e74344b01", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/freshness/metrics/${cid}?intervalDays=7 (apps/dashboard/components/freshness-compliance-heatmap.tsx:33)"}, "properties": {"repobilityId": "b13f957e2bffaf2e", "scanner": "scanner-primary", "fingerprint": "22a6540e74344b01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2e595c5fd957f8b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/audit-log?${params} (apps/dashboard/components/audit-log-explorer.tsx:52)"}, "properties": {"repobilityId": "5b4c362c731f824c", "scanner": "scanner-primary", "fingerprint": "a2e595c5fd957f8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6f929c0527247827", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/transformations/rules (apps/dashboard/components/transformation-rule-editor.tsx:144)"}, "properties": {"repobilityId": "f7ab50a2eadbca75", "scanner": "scanner-primary", "fingerprint": "6f929c0527247827", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-03d20d18eaca7df1", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/transformations/rules/${ruleId} (apps/dashboard/components/transformation-rule-editor.tsx:166)"}, "properties": {"repobilityId": "33b5b87f52188ae9", "scanner": "scanner-primary", "fingerprint": "03d20d18eaca7df1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5926c298f64b04b3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/scim/v2/Users?workspaceId=${workspaceId}&count=1 (apps/dashboard/components/scim-sync-status.tsx:44)"}, "properties": {"repobilityId": "cc4b823eb0e70000", "scanner": "scanner-primary", "fingerprint": "5926c298f64b04b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71fe130b712bea83", "level": "error", "message": {"text": "Dangling fetch: GET /scim/v2/Groups (apps/dashboard/components/scim-sync-status.tsx:50)"}, "properties": {"repobilityId": "bf791318358d2261", "scanner": "scanner-primary", "fingerprint": "71fe130b712bea83", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d08bab6d150f0880", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/patterns?workspaceId=${workspaceId} (apps/dashboard/components/cache-warming-status.tsx:31)"}, "properties": {"repobilityId": "dfeafee588851ffb", "scanner": "scanner-primary", "fingerprint": "d08bab6d150f0880", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-abb8c9e047480063", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/predict (apps/dashboard/components/cache-warming-status.tsx:45)"}, "properties": {"repobilityId": "bbe2cf358352c326", "scanner": "scanner-primary", "fingerprint": "abb8c9e047480063", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76e92780b7bdd5e6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/cache/preload (apps/dashboard/components/cache-warming-status.tsx:54)"}, "properties": {"repobilityId": "51944f25b7cc332f", "scanner": "scanner-primary", "fingerprint": "76e92780b7bdd5e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8aecbbcf8deec64a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/traces?${params} (apps/dashboard/components/latency-heatmap.tsx:56)"}, "properties": {"repobilityId": "f6e49ce9a5450688", "scanner": "scanner-primary", "fingerprint": "8aecbbcf8deec64a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a87d754e6ca01b85", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/lineage/${encodeURIComponent(entityId.trim())}/impact-analysis (apps/dashboard/components/impact-analysis-tool.tsx:41)"}, "properties": {"repobilityId": "0539c9cd90455b40", "scanner": "scanner-primary", "fingerprint": "a87d754e6ca01b85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db44eb4b19b5716e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/dedup/candidates?status=reviewed&limit=100 (apps/dashboard/components/dedup-decision-history.tsx:48)"}, "properties": {"repobilityId": "b43907c02c2a6f08", "scanner": "scanner-primary", "fingerprint": "db44eb4b19b5716e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f60334f1b8c01fa", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/dedup/merge/${encodeURIComponent(record.sourceEntityId)}/${encodeURIComponent(record.candidateDuplicateId)}/undo (apps/dashboard/components/dedup-decision-history.tsx:63)"}, "properties": {"repobilityId": "28e6c26bfd9991f2", "scanner": "scanner-primary", "fingerprint": "0f60334f1b8c01fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3fed39d801c7871f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/search-quality/experiments?workspaceId=${encodeURIComponent(WORKSPACE_ID)} (apps/dashboard/components/quality-metrics-dashboard.tsx:42)"}, "properties": {"repobilityId": "669d95970a9cc6d5", "scanner": "scanner-primary", "fingerprint": "3fed39d801c7871f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d00af6b8f13bb81", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/traces/${traceId} (apps/dashboard/components/trace-waterfall.tsx:36)"}, "properties": {"repobilityId": "af786bca44aa0ec9", "scanner": "scanner-primary", "fingerprint": "8d00af6b8f13bb81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-681c9c2816fd4b0c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/estimate-cost (apps/dashboard/components/query-cost-breakdown.tsx:199)"}, "properties": {"repobilityId": "f33033d315641497", "scanner": "scanner-primary", "fingerprint": "681c9c2816fd4b0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea6ad7e1cd649f16", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/queries/cost-history?${params} (apps/dashboard/components/query-cost-breakdown.tsx:221)"}, "properties": {"repobilityId": "c5b22ce16018b2c5", "scanner": "scanner-primary", "fingerprint": "ea6ad7e1cd649f16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-34428f74b4849e70", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/stats (apps/dashboard/components/cache-stats-panel.tsx:40)"}, "properties": {"repobilityId": "718e0dc30b457d5b", "scanner": "scanner-primary", "fingerprint": "34428f74b4849e70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b9fc5cd92fe4177", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/cache/stats (apps/dashboard/components/cache-stats-panel.tsx:62)"}, "properties": {"repobilityId": "7853e8099e857eb4", "scanner": "scanner-primary", "fingerprint": "9b9fc5cd92fe4177", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6c0674631cf9c6e2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/cache/clusters?days=${days} (apps/dashboard/components/query-clustering-analysis.tsx:68)"}, "properties": {"repobilityId": "cd6fc9fea1be86fa", "scanner": "scanner-primary", "fingerprint": "6c0674631cf9c6e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9ec3243f52b00afc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/data/jobs?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/components/job-history-table.tsx:39)"}, "properties": {"repobilityId": "85687526b333f726", "scanner": "scanner-primary", "fingerprint": "9ec3243f52b00afc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-70cf8f3dd2f30b9f", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/benchmarks/settings (apps/dashboard/components/benchmarking-card.tsx:69)"}, "properties": {"repobilityId": "b7553891dacb3a2e", "scanner": "scanner-primary", "fingerprint": "70cf8f3dd2f30b9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b2147fb0f3a4be9e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmark-snapshot?workspaceId=${workspaceId} (apps/dashboard/components/benchmarking-card.tsx:92)"}, "properties": {"repobilityId": "a044db1f8c12444c", "scanner": "scanner-primary", "fingerprint": "b2147fb0f3a4be9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-436f23d3bd438188", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/benchmarks/peer-comparison?workspaceId=${workspaceId} (apps/dashboard/components/benchmarking-card.tsx:93)"}, "properties": {"repobilityId": "debe76e991ccb66c", "scanner": "scanner-primary", "fingerprint": "436f23d3bd438188", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-909003f98fd4c69b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${listing.connectorId}/ratings (apps/dashboard/components/connector-detail-modal.tsx:47)"}, "properties": {"repobilityId": "47a0717c984309a9", "scanner": "scanner-primary", "fingerprint": "909003f98fd4c69b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f48b8d72f1d7a3a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/${listing.connectorId}/rate (apps/dashboard/components/connector-detail-modal.tsx:75)"}, "properties": {"repobilityId": "a04054cbf2331963", "scanner": "scanner-primary", "fingerprint": "4f48b8d72f1d7a3a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f4c7cafba64a131e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/query-optimizer/stats (apps/dashboard/components/query-optimizer-panel.tsx:52)"}, "properties": {"repobilityId": "441d980ffc4a36f0", "scanner": "scanner-primary", "fingerprint": "f4c7cafba64a131e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d7df792664f4e30d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/optimize (apps/dashboard/components/query-optimizer-panel.tsx:64)"}, "properties": {"repobilityId": "fc2d34c7bbac61d3", "scanner": "scanner-primary", "fingerprint": "d7df792664f4e30d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a6eb75ccdae959a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/onboarding/step (apps/dashboard/components/onboarding-wizard.tsx:67)"}, "properties": {"repobilityId": "94df5265efbeee83", "scanner": "scanner-primary", "fingerprint": "4a6eb75ccdae959a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a37caa31ac4f0f1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/onboarding/skip (apps/dashboard/components/onboarding-wizard.tsx:91)"}, "properties": {"repobilityId": "0f1f0e78b4688342", "scanner": "scanner-primary", "fingerprint": "2a37caa31ac4f0f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0993954bdf86f91", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors?name=${encodeURIComponent(connId)} (apps/dashboard/components/onboarding-wizard.tsx:106)"}, "properties": {"repobilityId": "aee681f835b54a2b", "scanner": "scanner-primary", "fingerprint": "a0993954bdf86f91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc442db7939f5ce1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${inst.id}/sync (apps/dashboard/components/onboarding-wizard.tsx:111)"}, "properties": {"repobilityId": "da7511f712a617e7", "scanner": "scanner-primary", "fingerprint": "bc442db7939f5ce1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-200f24ad96b9fa9b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${connectorId}/reliability (apps/dashboard/components/reliability-gauge.tsx:34)"}, "properties": {"repobilityId": "005453d21ac45401", "scanner": "scanner-primary", "fingerprint": "200f24ad96b9fa9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c51a4d9d5f1524d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/resilience/circuit-breakers (apps/dashboard/components/resilience-status.tsx:34)"}, "properties": {"repobilityId": "7c3537b6e5c43461", "scanner": "scanner-primary", "fingerprint": "5c51a4d9d5f1524d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e70fdb0875026458", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${connectorId}/suggest-mapping (apps/dashboard/components/field-mapping-assistant.tsx:67)"}, "properties": {"repobilityId": "43c23412a37e8a2a", "scanner": "scanner-primary", "fingerprint": "e70fdb0875026458", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d813dbc6c11cb94", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${connectorId}/mapping-suggestions/confirm (apps/dashboard/components/field-mapping-assistant.tsx:88)"}, "properties": {"repobilityId": "42d2397a7b0d7686", "scanner": "scanner-primary", "fingerprint": "8d813dbc6c11cb94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f886ace5e27eda41", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/export/osi?${params.toString()} (apps/dashboard/components/osi-export-wizard.tsx:51)"}, "properties": {"repobilityId": "e340ab9d8d45b2b5", "scanner": "scanner-primary", "fingerprint": "f886ace5e27eda41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-acdbea905ffe7c8d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/import/osi (apps/dashboard/components/osi-export-wizard.tsx:89)"}, "properties": {"repobilityId": "f15d6b14c52bcd0a", "scanner": "scanner-primary", "fingerprint": "acdbea905ffe7c8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-34c0fb6236de5374", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/mcp-clients/${clientId}/context-history?${params} (apps/dashboard/components/context-delta-analyzer.tsx:63)"}, "properties": {"repobilityId": "95e35efc9a4818b1", "scanner": "scanner-primary", "fingerprint": "34c0fb6236de5374", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-292956e2ea1870c6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/optimization/ab-tests/${encodeURIComponent(testId)}/conclude (apps/dashboard/components/ab-test-results-panel.tsx:61)"}, "properties": {"repobilityId": "baa0492db4423ad2", "scanner": "scanner-primary", "fingerprint": "292956e2ea1870c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6493ec65853fa5d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${connectorId}/schema/migrations (apps/dashboard/components/schema-migration-planner.tsx:56)"}, "properties": {"repobilityId": "c9e21c22089ee927", "scanner": "scanner-primary", "fingerprint": "e6493ec65853fa5d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5f151e5005ec18cf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/webhooks/events?${params} (apps/dashboard/components/webhook-delivery-status.tsx:69)"}, "properties": {"repobilityId": "8a7dbf4e76582c7c", "scanner": "scanner-primary", "fingerprint": "5f151e5005ec18cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9959ed0e14d324b4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-optimizer/plan (apps/dashboard/components/query-strategy-analyzer.tsx:67)"}, "properties": {"repobilityId": "0298509534d77098", "scanner": "scanner-primary", "fingerprint": "9959ed0e14d324b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c22e878dd0300f33", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${agentId}/profile (apps/dashboard/components/agent-proactive-config.tsx:43)"}, "properties": {"repobilityId": "4fb35786bdfb4155", "scanner": "scanner-primary", "fingerprint": "c22e878dd0300f33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-549755a8c11ad9b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${agentId}/proactive-preview (apps/dashboard/components/agent-proactive-config.tsx:44)"}, "properties": {"repobilityId": "0b7addd368fa0002", "scanner": "scanner-primary", "fingerprint": "549755a8c11ad9b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07baa4b9c8e49371", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${agentId}/acceptance-stats (apps/dashboard/components/agent-proactive-config.tsx:45)"}, "properties": {"repobilityId": "a775886eb9fb20a7", "scanner": "scanner-primary", "fingerprint": "07baa4b9c8e49371", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c12bc3c8b6d7c07", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${agentId}/proactive-settings (apps/dashboard/components/agent-proactive-config.tsx:57)"}, "properties": {"repobilityId": "d1cf0e56df6cda47", "scanner": "scanner-primary", "fingerprint": "2c12bc3c8b6d7c07", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae8ec3ac662c4843", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp-tools/${toolName}/sdk-stub?language=${stubLang}&version=${version} (apps/dashboard/components/mcp-tool-browser.tsx:45)"}, "properties": {"repobilityId": "42523114f51e8d5e", "scanner": "scanner-primary", "fingerprint": "ae8ec3ac662c4843", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b9f842c915eb4d8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&limit=${limit} (apps/dashboard/components/experiment-results-table.tsx:45)"}, "properties": {"repobilityId": "85fc6f42d3d1f2e4", "scanner": "scanner-primary", "fingerprint": "1b9f842c915eb4d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-302473931dca618d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/context/stream (apps/dashboard/components/streaming-preview-panel.tsx:28)"}, "properties": {"repobilityId": "ce2480a730689b4a", "scanner": "scanner-primary", "fingerprint": "302473931dca618d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c5a908bad73f9bc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sessions?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:44)"}, "properties": {"repobilityId": "4aef1651dad4bc4a", "scanner": "scanner-primary", "fingerprint": "3c5a908bad73f9bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab306ca8b188e1f1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sessions/devices?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:47)"}, "properties": {"repobilityId": "b2240b0f48a8699b", "scanner": "scanner-primary", "fingerprint": "ab306ca8b188e1f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5477dd65f4b490c2", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/sessions/${id} (apps/dashboard/components/session-list.tsx:68)"}, "properties": {"repobilityId": "44ebcca50c9bfee8", "scanner": "scanner-primary", "fingerprint": "5477dd65f4b490c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5cbcd295af35d86d", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/sessions/devices/${deviceId}?userId=${encodeURIComponent(userId)} (apps/dashboard/components/session-list.tsx:83)"}, "properties": {"repobilityId": "1e87a2f4bb268bcd", "scanner": "scanner-primary", "fingerprint": "5cbcd295af35d86d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a66895cb5359300d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${connectorId}/reliability (apps/dashboard/components/degradation-predictor-panel.tsx:49)"}, "properties": {"repobilityId": "bc28a9dad8a45612", "scanner": "scanner-primary", "fingerprint": "a66895cb5359300d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b09eb378bb1dbd9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters?${params} (apps/dashboard/components/dedup-cluster-explorer.tsx:43)"}, "properties": {"repobilityId": "bf6dec1bc805ae89", "scanner": "scanner-primary", "fingerprint": "7b09eb378bb1dbd9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c8606e435b2c7b4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/transformations/test (apps/dashboard/components/transformation-test-panel.tsx:79)"}, "properties": {"repobilityId": "7d7f6e88df09428f", "scanner": "scanner-primary", "fingerprint": "4c8606e435b2c7b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-60603bb4b56f0544", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/batch/recommend-contexts (apps/dashboard/components/batch-context-panel.tsx:49)"}, "properties": {"repobilityId": "71b2884fb0b6916a", "scanner": "scanner-primary", "fingerprint": "60603bb4b56f0544", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-66847c6cb022ec93", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/alerts/channels (apps/dashboard/components/alert-channel-manager.tsx:59)"}, "properties": {"repobilityId": "e7188c6c221a99ea", "scanner": "scanner-primary", "fingerprint": "66847c6cb022ec93", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35fb678d1f4f4962", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search-quality/evaluate (apps/dashboard/components/ranking-explainer.tsx:31)"}, "properties": {"repobilityId": "4d68d29302897347", "scanner": "scanner-primary", "fingerprint": "35fb678d1f4f4962", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d7e9b43c4b03ce0c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graph/inferred-relationships?topK=20 (apps/dashboard/components/relationship-suggestions-panel.tsx:70)"}, "properties": {"repobilityId": "f51ef2cde060f8d1", "scanner": "scanner-primary", "fingerprint": "d7e9b43c4b03ce0c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a55789d04ada69e7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/graph/inferred/${relId}/${action} (apps/dashboard/components/relationship-suggestions-panel.tsx:86)"}, "properties": {"repobilityId": "f24a368cc5502038", "scanner": "scanner-primary", "fingerprint": "a55789d04ada69e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1fdf0944980f4094", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/traces/analyze (apps/dashboard/components/critical-path-analyzer.tsx:27)"}, "properties": {"repobilityId": "8a369bcf536c3251", "scanner": "scanner-primary", "fingerprint": "1fdf0944980f4094", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5484d3a307450af3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/email-templates (apps/dashboard/components/email-template-editor.tsx:57)"}, "properties": {"repobilityId": "0f3e758ac6a25b96", "scanner": "scanner-primary", "fingerprint": "5484d3a307450af3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2fedfe3b903f5b60", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/email-templates (apps/dashboard/components/email-template-editor.tsx:106)"}, "properties": {"repobilityId": "c64d51cfd89df0d7", "scanner": "scanner-primary", "fingerprint": "2fedfe3b903f5b60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac8c964c08d67323", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/email-templates/${id} (apps/dashboard/components/email-template-editor.tsx:134)"}, "properties": {"repobilityId": "66f82a1e938d6020", "scanner": "scanner-primary", "fingerprint": "ac8c964c08d67323", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-42fdc456db0a2730", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/queries/missing-context (apps/dashboard/components/missing-context-advisor.tsx:27)"}, "properties": {"repobilityId": "ed114aab7ad638e3", "scanner": "scanner-primary", "fingerprint": "42fdc456db0a2730", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-086b8311f51d5d84", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sync-optimizer/experiments?connectorId=${encodeURIComponent(connectorId)}&limit=${limit} (apps/dashboard/components/optimization-history-chart.tsx:36)"}, "properties": {"repobilityId": "317ee77bd116234a", "scanner": "scanner-primary", "fingerprint": "086b8311f51d5d84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f1b9da701ac2785d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/parse (apps/dashboard/components/nlp-config-chat.tsx:55)"}, "properties": {"repobilityId": "a2dcd2e7468dd223", "scanner": "scanner-primary", "fingerprint": "f1b9da701ac2785d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-36811024d8130762", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents (apps/dashboard/components/nlp-config-chat.tsx:72)"}, "properties": {"repobilityId": "2f48e7e883baa3fa", "scanner": "scanner-primary", "fingerprint": "36811024d8130762", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-708fe90c9f4a28aa", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/optimization/recommendations (apps/dashboard/components/auto-tuning-advisor.tsx:40)"}, "properties": {"repobilityId": "f6352f0a1b90885f", "scanner": "scanner-primary", "fingerprint": "708fe90c9f4a28aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7f10aab0ac6e3f86", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/optimization/recommendations/generate (apps/dashboard/components/auto-tuning-advisor.tsx:56)"}, "properties": {"repobilityId": "7a0faa92caa43a3b", "scanner": "scanner-primary", "fingerprint": "7f10aab0ac6e3f86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f948cc20f13c94e1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/optimization/recommendations/${id}/apply-test (apps/dashboard/components/auto-tuning-advisor.tsx:67)"}, "properties": {"repobilityId": "29fdfa31523ef8d2", "scanner": "scanner-primary", "fingerprint": "f948cc20f13c94e1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67f2c2f68e4a823e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/optimization/recommendations/${id}/feedback (apps/dashboard/components/auto-tuning-advisor.tsx:75)"}, "properties": {"repobilityId": "c2f4eeae94ec270f", "scanner": "scanner-primary", "fingerprint": "67f2c2f68e4a823e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-72b068ccdf9faf2d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${id}/insights (apps/dashboard/components/agent-feedback-dashboard.tsx:71)"}, "properties": {"repobilityId": "85e8261b6ad264ef", "scanner": "scanner-primary", "fingerprint": "72b068ccdf9faf2d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bb456836c7a3602", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/relevance-adjustments (apps/dashboard/components/agent-feedback-dashboard.tsx:72)"}, "properties": {"repobilityId": "9580c66987eeeceb", "scanner": "scanner-primary", "fingerprint": "6bb456836c7a3602", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-797e5155f6661f98", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/validation/rules (apps/dashboard/components/validation-rule-builder.tsx:136)"}, "properties": {"repobilityId": "47d2007cf425ac31", "scanner": "scanner-primary", "fingerprint": "797e5155f6661f98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0990ba6e654493cb", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/validation/rules/${ruleId} (apps/dashboard/components/validation-rule-builder.tsx:160)"}, "properties": {"repobilityId": "9d264d2552843d50", "scanner": "scanner-primary", "fingerprint": "0990ba6e654493cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7cd5762e1778d9c2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-formula-editor.tsx:43)"}, "properties": {"repobilityId": "65eb6923e4fcd0a7", "scanner": "scanner-primary", "fingerprint": "7cd5762e1778d9c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-58ff4a94efb452c9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nlp-config/intents/${id}/apply (apps/dashboard/components/intent-confirmation-dialog.tsx:53)"}, "properties": {"repobilityId": "6f9b7d0c0d9de3cb", "scanner": "scanner-primary", "fingerprint": "58ff4a94efb452c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7230fa249834e875", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/nlp-config/intents/${id} (apps/dashboard/components/intent-confirmation-dialog.tsx:67)"}, "properties": {"repobilityId": "5b66ca7e87580be0", "scanner": "scanner-primary", "fingerprint": "7230fa249834e875", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e3452ac6f950058", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/providers/registry (apps/dashboard/components/provider-config.tsx:51)"}, "properties": {"repobilityId": "9da8c87e02ed95f4", "scanner": "scanner-primary", "fingerprint": "5e3452ac6f950058", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb95daeae3808761", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/providers (apps/dashboard/components/provider-config.tsx:52)"}, "properties": {"repobilityId": "c1e2639d87df64fa", "scanner": "scanner-primary", "fingerprint": "bb95daeae3808761", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce9fa5de2e38f49c", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/providers/${encodeURIComponent(id)} (apps/dashboard/components/provider-config.tsx:76)"}, "properties": {"repobilityId": "2ebbbdfe279bedd2", "scanner": "scanner-primary", "fingerprint": "ce9fa5de2e38f49c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f5de26501545b67b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/providers/${encodeURIComponent(id)} (apps/dashboard/components/provider-config.tsx:94)"}, "properties": {"repobilityId": "6f6334ea821404de", "scanner": "scanner-primary", "fingerprint": "f5de26501545b67b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b852ac3ef8b67c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/backups/${backupId}/restore-to-point (apps/dashboard/components/point-in-time-restore-wizard.tsx:30)"}, "properties": {"repobilityId": "dd780c8c35121345", "scanner": "scanner-primary", "fingerprint": "7b852ac3ef8b67c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c067152e44e152af", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/entities/import (apps/dashboard/components/import-wizard.tsx:76)"}, "properties": {"repobilityId": "d26ff8747e957f21", "scanner": "scanner-primary", "fingerprint": "c067152e44e152af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2fd3d9c58771245", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/index-repair/rebuild (apps/dashboard/components/rebuild-progress-panel.tsx:40)"}, "properties": {"repobilityId": "4a748847af1bc085", "scanner": "scanner-primary", "fingerprint": "a2fd3d9c58771245", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-65f6cb857da426f6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/export/jobs (apps/dashboard/components/backup-manager.tsx:38)"}, "properties": {"repobilityId": "99580a22f304b98f", "scanner": "scanner-primary", "fingerprint": "65f6cb857da426f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a1aa59572af3ace", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/export/${exportType} (apps/dashboard/components/backup-manager.tsx:61)"}, "properties": {"repobilityId": "8b3b569c278ae0f6", "scanner": "scanner-primary", "fingerprint": "9a1aa59572af3ace", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b9fc9d17b431a0f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/export/jobs/${jobId} (apps/dashboard/components/backup-manager.tsx:85)"}, "properties": {"repobilityId": "c6d5f7cc3a350273", "scanner": "scanner-primary", "fingerprint": "7b9fc9d17b431a0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-081f33c3f112d904", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics/validate-formula (apps/dashboard/components/metric-preview.tsx:36)"}, "properties": {"repobilityId": "0cb31a67532fb822", "scanner": "scanner-primary", "fingerprint": "081f33c3f112d904", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b64a704eff15417", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/connectors/${connectorId}/circuit-status (apps/dashboard/components/circuit-breaker-indicator.tsx:52)"}, "properties": {"repobilityId": "bf89caa891ded019", "scanner": "scanner-primary", "fingerprint": "5b64a704eff15417", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f60e1c76325a7d6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/connectors/${connectorId}/circuit-reset (apps/dashboard/components/circuit-breaker-indicator.tsx:78)"}, "properties": {"repobilityId": "2d7ab223d5c961ed", "scanner": "scanner-primary", "fingerprint": "4f60e1c76325a7d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de151681a817a76b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/recipes/${recipe.id}/clone (apps/dashboard/components/recipe-installer.tsx:29)"}, "properties": {"repobilityId": "8eca316e753d51cd", "scanner": "scanner-primary", "fingerprint": "de151681a817a76b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d38e32428d351f7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/recipes/${recipe.id}/apply-to-workspace (apps/dashboard/components/recipe-installer.tsx:40)"}, "properties": {"repobilityId": "d46034470da5e274", "scanner": "scanner-primary", "fingerprint": "3d38e32428d351f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c56d770ee7f76f5b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/enrichment/gaps?${params} (apps/dashboard/components/enrichment-gap-histogram.tsx:33)"}, "properties": {"repobilityId": "aa87739d76e3c1e8", "scanner": "scanner-primary", "fingerprint": "c56d770ee7f76f5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0df518167467d1ea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/scim/v2/Users?count=50 (apps/dashboard/app/settings/default/directory/page.tsx:31)"}, "properties": {"repobilityId": "1969065c4fdee5f7", "scanner": "scanner-primary", "fingerprint": "0df518167467d1ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a08a6ed66b6a841d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/deletion/status (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:65)"}, "properties": {"repobilityId": "3b29450477e5c827", "scanner": "scanner-primary", "fingerprint": "a08a6ed66b6a841d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bac29a161d3cfaef", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/deletion/request (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:85)"}, "properties": {"repobilityId": "733f07080dc5b891", "scanner": "scanner-primary", "fingerprint": "bac29a161d3cfaef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3cff28896e97cea7", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/workspace/deletion/cancel (apps/dashboard/app/settings/[workspaceId]/deletion/page.tsx:106)"}, "properties": {"repobilityId": "6bff6da43565e2fc", "scanner": "scanner-primary", "fingerprint": "3cff28896e97cea7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2869752c87a05e92", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/alerts/rules (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:47)"}, "properties": {"repobilityId": "6f73770d3d76f0f9", "scanner": "scanner-primary", "fingerprint": "2869752c87a05e92", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9433a7de6f6399aa", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/alerts/channels (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:48)"}, "properties": {"repobilityId": "9e6db5b7c7d5ebbf", "scanner": "scanner-primary", "fingerprint": "9433a7de6f6399aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f56ae070e80e136", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspace/alerts/events?limit=20 (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:49)"}, "properties": {"repobilityId": "a35dae30ba56c9d7", "scanner": "scanner-primary", "fingerprint": "8f56ae070e80e136", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-85d0aeb3daa13754", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/workspace/alerts/rules/${ruleId} (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:70)"}, "properties": {"repobilityId": "2e8dca54e51ddf90", "scanner": "scanner-primary", "fingerprint": "85d0aeb3daa13754", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-849fbf9eea43562f", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/workspace/alerts/channels/${channelId} (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:75)"}, "properties": {"repobilityId": "afa1e0e80577d421", "scanner": "scanner-primary", "fingerprint": "849fbf9eea43562f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31b0863c9c6bcad9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/workspace/alerts/evaluate (apps/dashboard/app/settings/[workspaceId]/alerts/page.tsx:80)"}, "properties": {"repobilityId": "67878b6d1560f8b0", "scanner": "scanner-primary", "fingerprint": "31b0863c9c6bcad9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b23e3393f5d6c9e3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/nlp-config/intents (apps/dashboard/app/settings/[workspaceId]/nlp-config/page.tsx:28)"}, "properties": {"repobilityId": "497dcd947e2852d6", "scanner": "scanner-primary", "fingerprint": "b23e3393f5d6c9e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-14062a21b5016a0f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors?${params.toString()} (apps/dashboard/app/marketplace/page.tsx:26)"}, "properties": {"repobilityId": "461389c3128f542c", "scanner": "scanner-primary", "fingerprint": "14062a21b5016a0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6763d7c93560cb60", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/${connectorId}/install (apps/dashboard/app/marketplace/page.tsx:44)"}, "properties": {"repobilityId": "f30a154e653b7b5f", "scanner": "scanner-primary", "fingerprint": "6763d7c93560cb60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fed975b1cebfc65e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)} (apps/dashboard/app/marketplace/[connectorId]/page.tsx:33)"}, "properties": {"repobilityId": "0f657b47ab488376", "scanner": "scanner-primary", "fingerprint": "fed975b1cebfc65e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8beab6571f27d1e7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/reviews (apps/dashboard/app/marketplace/[connectorId]/page.tsx:36)"}, "properties": {"repobilityId": "e7babf5835e452c0", "scanner": "scanner-primary", "fingerprint": "8beab6571f27d1e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2eec91743e8b762d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors/${encodeURIComponent(id)}/versions (apps/dashboard/app/marketplace/[connectorId]/page.tsx:39)"}, "properties": {"repobilityId": "07b05705b83b84ec", "scanner": "scanner-primary", "fingerprint": "2eec91743e8b762d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b82794cbd252cd9f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/marketplace/connectors/${encodeURIComponent(id)}/install (apps/dashboard/app/marketplace/[connectorId]/page.tsx:70)"}, "properties": {"repobilityId": "4aff972c64833eda", "scanner": "scanner-primary", "fingerprint": "b82794cbd252cd9f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-166ae5bccda16fe9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/opt-in (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:71)"}, "properties": {"repobilityId": "045add50b4fc06af", "scanner": "scanner-primary", "fingerprint": "166ae5bccda16fe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e15b5433c981031", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/benchmarks/peers (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:79)"}, "properties": {"repobilityId": "7bb6a1d6c6dda115", "scanner": "scanner-primary", "fingerprint": "5e15b5433c981031", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8656b2b06a432d69", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/benchmarks/opt-in (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:93)"}, "properties": {"repobilityId": "3714ae828abeac86", "scanner": "scanner-primary", "fingerprint": "8656b2b06a432d69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10e8c24425c26968", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/benchmarks/opt-out (apps/dashboard/app/analytics/[workspaceId]/benchmarks/page.tsx:109)"}, "properties": {"repobilityId": "bced058d37d789c0", "scanner": "scanner-primary", "fingerprint": "10e8c24425c26968", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0ec15f96af1c37d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tracing/traces?workspaceId=${workspaceId} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:41)"}, "properties": {"repobilityId": "47c2d42b1c562bff", "scanner": "scanner-primary", "fingerprint": "c0ec15f96af1c37d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eadfdc7271904ad5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tracing/latency?operation=${encodeURIComponent(op)} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:48)"}, "properties": {"repobilityId": "230786445d997e1f", "scanner": "scanner-primary", "fingerprint": "eadfdc7271904ad5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae1cd7b727bd5c3e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tracing/traces/${traceId} (apps/dashboard/app/analytics/[workspaceId]/traces/page.tsx:62)"}, "properties": {"repobilityId": "9b91df756e881107", "scanner": "scanner-primary", "fingerprint": "ae1cd7b727bd5c3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9263c179b8331b5c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/queries?limitHours=168 (apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:62)"}, "properties": {"repobilityId": "ad1f1f67d7402b27", "scanner": "scanner-primary", "fingerprint": "9263c179b8331b5c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e6d7ba31caf471e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/analytics/queries/detect-patterns (apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:82)"}, "properties": {"repobilityId": "d9e4c4ea3d308de9", "scanner": "scanner-primary", "fingerprint": "1e6d7ba31caf471e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f8a7954a987b9b66", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/analytics/cache-warming/trigger (apps/dashboard/app/analytics/[workspaceId]/queries/page.tsx:104)"}, "properties": {"repobilityId": "06a71b5316dc868a", "scanner": "scanner-primary", "fingerprint": "f8a7954a987b9b66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1db69692026c9b52", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/query_latency?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:23)"}, "properties": {"repobilityId": "2b7ac562d3aba100", "scanner": "scanner-primary", "fingerprint": "1db69692026c9b52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-89b517f0082d5be7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/tokens_saved?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:24)"}, "properties": {"repobilityId": "90bd4fd2ec1a8047", "scanner": "scanner-primary", "fingerprint": "89b517f0082d5be7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b98d583259904d84", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/connector_error?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:25)"}, "properties": {"repobilityId": "7e32b62d90bbf32f", "scanner": "scanner-primary", "fingerprint": "b98d583259904d84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-938d22d97a46ba0e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/metrics/query_latency/anomalies?hours=24 (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:26)"}, "properties": {"repobilityId": "01858997dfd6b984", "scanner": "scanner-primary", "fingerprint": "938d22d97a46ba0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bf3cc30695f6b8be", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/dashboards/token-efficiency?window=${window} (apps/dashboard/app/analytics/[workspaceId]/overview/page.tsx:27)"}, "properties": {"repobilityId": "ded9d1811514f721", "scanner": "scanner-primary", "fingerprint": "bf3cc30695f6b8be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-936dff76b212f420", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/index?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/app/analytics/[workspaceId]/composition/page.tsx:88)"}, "properties": {"repobilityId": "0521d8534b063d4a", "scanner": "scanner-primary", "fingerprint": "936dff76b212f420", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f9cf5167b883ebd8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/analytics/index/snapshots?workspaceId=${encodeURIComponent(workspaceId)}&days=30 (apps/dashboard/app/analytics/[workspaceId]/composition/page.tsx:89)"}, "properties": {"repobilityId": "3e8a58cbb6110f5e", "scanner": "scanner-primary", "fingerprint": "f9cf5167b883ebd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f804469764139d0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/lineage (apps/dashboard/app/data-lineage/page.tsx:30)"}, "properties": {"repobilityId": "33017db79ea8e553", "scanner": "scanner-primary", "fingerprint": "8f804469764139d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25b6aedb9ebec3ac", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/mcp/stream (apps/dashboard/app/mcp/stream-tester/page.tsx:88)"}, "properties": {"repobilityId": "41a71487240d83cb", "scanner": "scanner-primary", "fingerprint": "25b6aedb9ebec3ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b9c232e34ec3b50", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources?workspaceId=${encodeURIComponent(workspaceId)} (apps/dashboard/app/mcp/resources/page.tsx:26)"}, "properties": {"repobilityId": "3a09ce58034f85fa", "scanner": "scanner-primary", "fingerprint": "1b9c232e34ec3b50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bee8ce40d46d3a8e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/mcp/resources/uri?${params.toString()} (apps/dashboard/app/mcp/resources/page.tsx:40)"}, "properties": {"repobilityId": "97134a60d3b08221", "scanner": "scanner-primary", "fingerprint": "bee8ce40d46d3a8e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39496b62c993694d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/metrics (apps/dashboard/app/workspace/[workspaceId]/metrics/builder/page.tsx:29)"}, "properties": {"repobilityId": "753e06a4b0d13823", "scanner": "scanner-primary", "fingerprint": "39496b62c993694d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5d1354da6eeb4669", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/insights?${params} (apps/dashboard/app/insights/page.tsx:52)"}, "properties": {"repobilityId": "a8ee4ed9dc0275bf", "scanner": "scanner-primary", "fingerprint": "5d1354da6eeb4669", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-248e51ded4b12372", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/insights/${id}/feedback (apps/dashboard/app/insights/page.tsx:63)"}, "properties": {"repobilityId": "60fa3424826cacda", "scanner": "scanner-primary", "fingerprint": "248e51ded4b12372", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e0724cfd9ea73876", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/workspaces/default/index-expansion-recommendations (apps/dashboard/app/insights/query-recommendations/page.tsx:25)"}, "properties": {"repobilityId": "63e42ee7138a2d22", "scanner": "scanner-primary", "fingerprint": "e0724cfd9ea73876", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b2bd375a36e5166", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/search (apps/dashboard/app/search/page.tsx:94)"}, "properties": {"repobilityId": "76227360509eabc9", "scanner": "scanner-primary", "fingerprint": "5b2bd375a36e5166", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b996d1c3b95e9d9e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/recipes/shared (apps/dashboard/app/recipes/page.tsx:23)"}, "properties": {"repobilityId": "377dea17ee4b3a38", "scanner": "scanner-primary", "fingerprint": "b996d1c3b95e9d9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0c3b48f4052117ea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/recipes/predefined (apps/dashboard/app/recipes/page.tsx:28)"}, "properties": {"repobilityId": "fa1dbd79b550b98a", "scanner": "scanner-primary", "fingerprint": "0c3b48f4052117ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b39584062280d29", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/recipes/templates (apps/dashboard/app/recipes/page.tsx:64)"}, "properties": {"repobilityId": "842a0f9e6b4f0877", "scanner": "scanner-primary", "fingerprint": "7b39584062280d29", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f189e7eaa8ec423", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/workspaces (apps/dashboard/app/admin/page.tsx:73)"}, "properties": {"repobilityId": "a5470de4d8cdadbe", "scanner": "scanner-primary", "fingerprint": "0f189e7eaa8ec423", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-11b44a0c4b934b36", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/system-health (apps/dashboard/app/admin/page.tsx:91)"}, "properties": {"repobilityId": "a4e1caac27a4d6f8", "scanner": "scanner-primary", "fingerprint": "11b44a0c4b934b36", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a25d3ebb3a802bbc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/errors?days=7 (apps/dashboard/app/admin/page.tsx:105)"}, "properties": {"repobilityId": "5c91a272a597021f", "scanner": "scanner-primary", "fingerprint": "a25d3ebb3a802bbc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d28f1ee6660a446", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:3001/api/v1/admin/system-health (apps/dashboard/app/admin/__tests__/overview.test.tsx:81)"}, "properties": {"repobilityId": "f9c57bee6e8ecf89", "scanner": "scanner-primary", "fingerprint": "8d28f1ee6660a446", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5869ea3ea5d62348", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/rules (apps/dashboard/app/admin/data-rules/page.tsx:62)"}, "properties": {"repobilityId": "168a015299c40c81", "scanner": "scanner-primary", "fingerprint": "5869ea3ea5d62348", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-96293d43a7a8cab4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/rules/violations (apps/dashboard/app/admin/data-rules/page.tsx:67)"}, "properties": {"repobilityId": "8ef5e9e0484693fa", "scanner": "scanner-primary", "fingerprint": "96293d43a7a8cab4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1966f1949153cace", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/rules (apps/dashboard/app/admin/data-rules/page.tsx:72)"}, "properties": {"repobilityId": "1cc2e9a64226aeaf", "scanner": "scanner-primary", "fingerprint": "1966f1949153cace", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2dcb8eb00f20b0b7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/backups (apps/dashboard/app/admin/backup-recovery/page.tsx:33)"}, "properties": {"repobilityId": "6dd4812cb4fbb977", "scanner": "scanner-primary", "fingerprint": "2dcb8eb00f20b0b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61bf1b940e349012", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/backups/metrics (apps/dashboard/app/admin/backup-recovery/page.tsx:34)"}, "properties": {"repobilityId": "3b49a9c8dc61714f", "scanner": "scanner-primary", "fingerprint": "61bf1b940e349012", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25267b9c2d8a3ec2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/backups/full (apps/dashboard/app/admin/backup-recovery/page.tsx:52)"}, "properties": {"repobilityId": "eb52d48b8fb8468c", "scanner": "scanner-primary", "fingerprint": "25267b9c2d8a3ec2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67b67254af25fc98", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/backups/incremental (apps/dashboard/app/admin/backup-recovery/page.tsx:78)"}, "properties": {"repobilityId": "f2c58f6bac0ec702", "scanner": "scanner-primary", "fingerprint": "67b67254af25fc98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0db3f1ea053bbc2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/backups/prune (apps/dashboard/app/admin/backup-recovery/page.tsx:98)"}, "properties": {"repobilityId": "46817fd14a298d8f", "scanner": "scanner-primary", "fingerprint": "c0db3f1ea053bbc2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-307f4d5763847001", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/health-scorecards/health-summary?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:54)"}, "properties": {"repobilityId": "40ff0a4a9952eadf", "scanner": "scanner-primary", "fingerprint": "307f4d5763847001", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-520e808f37e6aa8d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/health-scorecards/incidents?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:64)"}, "properties": {"repobilityId": "c50d651ba61935c9", "scanner": "scanner-primary", "fingerprint": "520e808f37e6aa8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10aea46d254d875c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/health-scorecards/${connectorId}/sla-breaches?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:74)"}, "properties": {"repobilityId": "d7f46f0e38e02aef", "scanner": "scanner-primary", "fingerprint": "10aea46d254d875c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73b78982064d71dd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/health-scorecards/incidents/${alertId}/resolve (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:92)"}, "properties": {"repobilityId": "6c33efcfa40001ff", "scanner": "scanner-primary", "fingerprint": "73b78982064d71dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ccebfa7971928b1c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/health-scorecards/${connectorId}/recovery (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:101)"}, "properties": {"repobilityId": "37a277b3c81822d0", "scanner": "scanner-primary", "fingerprint": "ccebfa7971928b1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a458b8b6086dd3eb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/health-scorecards/${connectorId}/recovery-suggestions?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/connector-health-scorecard/page.tsx:109)"}, "properties": {"repobilityId": "7a17a212b7feef30", "scanner": "scanner-primary", "fingerprint": "a458b8b6086dd3eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d20739caa31d477", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors?isPublished=false (apps/dashboard/app/admin/marketplace-curation/page.tsx:31)"}, "properties": {"repobilityId": "b6c466aaed264a8c", "scanner": "scanner-primary", "fingerprint": "7d20739caa31d477", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3377fff098b72451", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/marketplace/connectors (apps/dashboard/app/admin/marketplace-curation/page.tsx:32)"}, "properties": {"repobilityId": "8b23cbeccdd1295b", "scanner": "scanner-primary", "fingerprint": "3377fff098b72451", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3678707be3aed17f", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/marketplace/connectors/${connectorId}/curate (apps/dashboard/app/admin/marketplace-curation/page.tsx:55)"}, "properties": {"repobilityId": "0593bff08ce7584a", "scanner": "scanner-primary", "fingerprint": "3678707be3aed17f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-069913bbcb1290dd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/nl-queries/sessions (apps/dashboard/app/admin/query-sessions/page.tsx:34)"}, "properties": {"repobilityId": "0aeb574513d03725", "scanner": "scanner-primary", "fingerprint": "069913bbcb1290dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-160468b49d33352e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/nl-queries/sessions/${sessionId} (apps/dashboard/app/admin/query-sessions/page.tsx:45)"}, "properties": {"repobilityId": "275372d25c7335bb", "scanner": "scanner-primary", "fingerprint": "160468b49d33352e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-476f5587981005f1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/nl-queries/sessions/${sessionId}/favorite (apps/dashboard/app/admin/query-sessions/page.tsx:53)"}, "properties": {"repobilityId": "2ed30b53597d4437", "scanner": "scanner-primary", "fingerprint": "476f5587981005f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0bded389d2548f57", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/nl-queries/sessions/${sessionId}/question/${questionIndex} (apps/dashboard/app/admin/query-sessions/page.tsx:61)"}, "properties": {"repobilityId": "293b213b87d5bf77", "scanner": "scanner-primary", "fingerprint": "0bded389d2548f57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8de1b5d54a2bcd82", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/pii/fields (apps/dashboard/app/admin/pii-config/page.tsx:67)"}, "properties": {"repobilityId": "c29307401d171338", "scanner": "scanner-primary", "fingerprint": "8de1b5d54a2bcd82", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0a2d93a2c5ef38dd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/pii/access-audit?limit=50 (apps/dashboard/app/admin/pii-config/page.tsx:81)"}, "properties": {"repobilityId": "0d92259674168e3c", "scanner": "scanner-primary", "fingerprint": "0a2d93a2c5ef38dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-490cdf9c5cc93c1e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/admin/pii/fields/${connectorId}/${fieldName}/strategy (apps/dashboard/app/admin/pii-config/page.tsx:97)"}, "properties": {"repobilityId": "c7db7635e7b81944", "scanner": "scanner-primary", "fingerprint": "490cdf9c5cc93c1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e95913f29b4f68e8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/bulk-rule (apps/dashboard/app/admin/pii-config/page.tsx:106)"}, "properties": {"repobilityId": "f8badb681389632c", "scanner": "scanner-primary", "fingerprint": "e95913f29b4f68e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-19443af0a6be69ff", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/pii/fields/preview (apps/dashboard/app/admin/pii-config/page.tsx:116)"}, "properties": {"repobilityId": "938b024269cdc6a2", "scanner": "scanner-primary", "fingerprint": "19443af0a6be69ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e1f3b0bd782b7cb3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connector-benchmarks/benchmark-matrix (apps/dashboard/app/admin/connector-benchmarks/page.tsx:53)"}, "properties": {"repobilityId": "7abba8e477d8b42b", "scanner": "scanner-primary", "fingerprint": "e1f3b0bd782b7cb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-738a494b8535a06b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connector-benchmarks/${selectedConnector}/benchmark (apps/dashboard/app/admin/connector-benchmarks/page.tsx:84)"}, "properties": {"repobilityId": "47a5a5d0e22cdb6b", "scanner": "scanner-primary", "fingerprint": "738a494b8535a06b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a05696e684c909f4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/performance/summary?days=${days} (apps/dashboard/app/admin/performance/page.tsx:92)"}, "properties": {"repobilityId": "07ae50969466efb4", "scanner": "scanner-primary", "fingerprint": "a05696e684c909f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35c68fe242bde32b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/performance/connectors/${connectorId}?days=${days} (apps/dashboard/app/admin/performance/page.tsx:109)"}, "properties": {"repobilityId": "04a4064547e876c1", "scanner": "scanner-primary", "fingerprint": "35c68fe242bde32b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0056dcea2f97e21", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entity-change-subscriptions (apps/dashboard/app/admin/subscription-manager/page.tsx:26)"}, "properties": {"repobilityId": "02d828e89c28b368", "scanner": "scanner-primary", "fingerprint": "f0056dcea2f97e21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c64c0e3a371214b", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/entity-change-subscriptions/${id} (apps/dashboard/app/admin/subscription-manager/page.tsx:42)"}, "properties": {"repobilityId": "2bb6f0f660328d8d", "scanner": "scanner-primary", "fingerprint": "9c64c0e3a371214b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-084a65b15747c8d5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/enrichments/configure/${source.id} (apps/dashboard/app/admin/enrichment-setup/page.tsx:58)"}, "properties": {"repobilityId": "c14f8e8f82b4afb3", "scanner": "scanner-primary", "fingerprint": "084a65b15747c8d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f652652c1455954f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/api-versions (apps/dashboard/app/admin/api-versioning/page.tsx:31)"}, "properties": {"repobilityId": "f0f0cae83bafd88f", "scanner": "scanner-primary", "fingerprint": "f652652c1455954f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38802376fe369d8d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/api-versions/${v.version}/deprecated (apps/dashboard/app/admin/api-versioning/page.tsx:39)"}, "properties": {"repobilityId": "76213b24ce000e6d", "scanner": "scanner-primary", "fingerprint": "38802376fe369d8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-636178266d2c97e7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/compliance/report/${framework} (apps/dashboard/app/admin/compliance/page.tsx:60)"}, "properties": {"repobilityId": "2b00aad6cd0f5c44", "scanner": "scanner-primary", "fingerprint": "636178266d2c97e7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bcb23c23efee44b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/analytics/queries/slow?days=${days} (apps/dashboard/app/admin/query-analytics/page.tsx:56)"}, "properties": {"repobilityId": "87662d1d6665d893", "scanner": "scanner-primary", "fingerprint": "6bcb23c23efee44b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d6d1445117e62168", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/analytics/queries/patterns?days=${days} (apps/dashboard/app/admin/query-analytics/page.tsx:57)"}, "properties": {"repobilityId": "b3022675613466d6", "scanner": "scanner-primary", "fingerprint": "d6d1445117e62168", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0cb57dd678f8759", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/analytics/index-recommendations (apps/dashboard/app/admin/query-analytics/page.tsx:58)"}, "properties": {"repobilityId": "8dd21d58602000a0", "scanner": "scanner-primary", "fingerprint": "c0cb57dd678f8759", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d248614d963b6fe", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/slos (apps/dashboard/app/admin/slos/page.tsx:42)"}, "properties": {"repobilityId": "91672d999e7bedcd", "scanner": "scanner-primary", "fingerprint": "3d248614d963b6fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2ddbbb295e47d40f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/slos/violations (apps/dashboard/app/admin/slos/page.tsx:43)"}, "properties": {"repobilityId": "e8d8998a5bf1662a", "scanner": "scanner-primary", "fingerprint": "2ddbbb295e47d40f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e9abe568103b97fc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/clusters/${clusterId}/members (apps/dashboard/app/admin/dedup-analysis/page.tsx:53)"}, "properties": {"repobilityId": "c54c416844e986a0", "scanner": "scanner-primary", "fingerprint": "e9abe568103b97fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fcc82e4e06475781", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/dedup/compare?entity1=${id1}&entity2=${id2} (apps/dashboard/app/admin/dedup-analysis/page.tsx:70)"}, "properties": {"repobilityId": "4054b023ff043442", "scanner": "scanner-primary", "fingerprint": "fcc82e4e06475781", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cae7d5d35c6967ea", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/dedup/merge (apps/dashboard/app/admin/dedup-analysis/page.tsx:86)"}, "properties": {"repobilityId": "6a959ec4958e9a2d", "scanner": "scanner-primary", "fingerprint": "cae7d5d35c6967ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a6cade8997a603e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/index/health?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/index-health/page.tsx:83)"}, "properties": {"repobilityId": "56c737de6d577943", "scanner": "scanner-primary", "fingerprint": "2a6cade8997a603e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-544b5e56bc3cee7a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/index/maintenance?workspaceId=${WORKSPACE_ID}&limit=20 (apps/dashboard/app/admin/index-health/page.tsx:84)"}, "properties": {"repobilityId": "8c8e37bfe75baf09", "scanner": "scanner-primary", "fingerprint": "544b5e56bc3cee7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb768bcda95f7963", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/index/maintenance/${jobType}/trigger (apps/dashboard/app/admin/index-health/page.tsx:104)"}, "properties": {"repobilityId": "3f3d457883e17266", "scanner": "scanner-primary", "fingerprint": "eb768bcda95f7963", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b05071b1dc19cb8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/permissions/templates (apps/dashboard/app/admin/permissions/page.tsx:23)"}, "properties": {"repobilityId": "0a870d81421b8d0e", "scanner": "scanner-primary", "fingerprint": "1b05071b1dc19cb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e004fe502050d44a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole} (apps/dashboard/app/admin/permissions/page.tsx:32)"}, "properties": {"repobilityId": "2aa115c142e5543d", "scanner": "scanner-primary", "fingerprint": "e004fe502050d44a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bfe518870ccc2150", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole}/audit (apps/dashboard/app/admin/permissions/page.tsx:33)"}, "properties": {"repobilityId": "3c25748469b50a94", "scanner": "scanner-primary", "fingerprint": "bfe518870ccc2150", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39923c8ed7b83ce4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/permissions/roles/${selectedRole}/revoke (apps/dashboard/app/admin/permissions/page.tsx:41)"}, "properties": {"repobilityId": "45b0ad02db0ea08a", "scanner": "scanner-primary", "fingerprint": "39923c8ed7b83ce4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b66fce28d9565b5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/permissions/roles/${selectedRole}/apply-template (apps/dashboard/app/admin/permissions/page.tsx:50)"}, "properties": {"repobilityId": "92f8d87650313c74", "scanner": "scanner-primary", "fingerprint": "3b66fce28d9565b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-45c711fdfc4afcaf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/permissions/roles/${selectedRole} (apps/dashboard/app/admin/permissions/page.tsx:55)"}, "properties": {"repobilityId": "7c1bd3e1400160ac", "scanner": "scanner-primary", "fingerprint": "45c711fdfc4afcaf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cacba8e67f3e45c4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/permissions/roles/${roleId}/${action} (apps/dashboard/app/admin/permissions/page.tsx:62)"}, "properties": {"repobilityId": "4f4777b9eaa67eb9", "scanner": "scanner-primary", "fingerprint": "cacba8e67f3e45c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a13c65fe9e88d63c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graphql/audit?workspaceId=${workspaceId}&limit=50 (apps/dashboard/app/admin/graphql-explorer/page.tsx:28)"}, "properties": {"repobilityId": "9ab45af349194e6d", "scanner": "scanner-primary", "fingerprint": "a13c65fe9e88d63c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7ad7bb205843ef94", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/graphql/schema (apps/dashboard/app/admin/graphql-explorer/page.tsx:41)"}, "properties": {"repobilityId": "6d82775da8e39882", "scanner": "scanner-primary", "fingerprint": "7ad7bb205843ef94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d29a821682f66a19", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies (apps/dashboard/app/admin/retention/page.tsx:50)"}, "properties": {"repobilityId": "a14f1c7e52a91071", "scanner": "scanner-primary", "fingerprint": "d29a821682f66a19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93257f1c06ece942", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/retention-policies/archived-entities (apps/dashboard/app/admin/retention/page.tsx:55)"}, "properties": {"repobilityId": "2f95d983a2896128", "scanner": "scanner-primary", "fingerprint": "93257f1c06ece942", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-209c3cda8441b5fb", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/retention-policies/archived-entities/${encodeURIComponent(entityId)}/restore (apps/dashboard/app/admin/retention/page.tsx:62)"}, "properties": {"repobilityId": "bf1e5f5386f168ec", "scanner": "scanner-primary", "fingerprint": "209c3cda8441b5fb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46522d238b96073f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/lifecycle/dashboard (apps/dashboard/app/admin/entity-lifecycle/page.tsx:27)"}, "properties": {"repobilityId": "dab81b3dd29ca297", "scanner": "scanner-primary", "fingerprint": "46522d238b96073f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de5179ab1add8009", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/lifecycle/entities?status=${statusFilter} (apps/dashboard/app/admin/entity-lifecycle/page.tsx:28)"}, "properties": {"repobilityId": "620fd0cf75b22908", "scanner": "scanner-primary", "fingerprint": "de5179ab1add8009", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c5f0d6b46a9e1c8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities/${entityId}/lifecycle (apps/dashboard/app/admin/entity-lifecycle/page.tsx:37)"}, "properties": {"repobilityId": "243a7777dad0060b", "scanner": "scanner-primary", "fingerprint": "8c5f0d6b46a9e1c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8859eec4d1749745", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/entities/${entityId}/lifecycle/status (apps/dashboard/app/admin/entity-lifecycle/page.tsx:45)"}, "properties": {"repobilityId": "e25d4ada3ba81ca2", "scanner": "scanner-primary", "fingerprint": "8859eec4d1749745", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-740686cc3cd353cc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/query-analytics/plans (apps/dashboard/app/admin/query-execution-analytics/page.tsx:43)"}, "properties": {"repobilityId": "9a4d26a5faec19be", "scanner": "scanner-primary", "fingerprint": "740686cc3cd353cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa291304c79f49af", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/query-analytics/plans/${planId} (apps/dashboard/app/admin/query-execution-analytics/page.tsx:56)"}, "properties": {"repobilityId": "f202de1cd0c1a789", "scanner": "scanner-primary", "fingerprint": "fa291304c79f49af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ec9b0bfebf64f69", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/query-analytics/plans/${planId}/rerun (apps/dashboard/app/admin/query-execution-analytics/page.tsx:66)"}, "properties": {"repobilityId": "a86e6d3520726cac", "scanner": "scanner-primary", "fingerprint": "8ec9b0bfebf64f69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee26f67f4c3811e4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sso (apps/dashboard/app/admin/sso/page.tsx:48)"}, "properties": {"repobilityId": "e58dde0cfee47d23", "scanner": "scanner-primary", "fingerprint": "ee26f67f4c3811e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-40718d3007d144aa", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sso/users (apps/dashboard/app/admin/sso/page.tsx:49)"}, "properties": {"repobilityId": "7f983b5519b10542", "scanner": "scanner-primary", "fingerprint": "40718d3007d144aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5a368a7f101664fc", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/sso (apps/dashboard/app/admin/sso/page.tsx:67)"}, "properties": {"repobilityId": "4c03543bd4e93c46", "scanner": "scanner-primary", "fingerprint": "5a368a7f101664fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e5f6e0ecce859b72", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/governance/lineage?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:43)"}, "properties": {"repobilityId": "4d5bbe2852803024", "scanner": "scanner-primary", "fingerprint": "e5f6e0ecce859b72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4269df933a473c2e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/governance/audit-summary?workspaceId=${WORKSPACE_ID}&limit=50 (apps/dashboard/app/admin/data-governance/page.tsx:53)"}, "properties": {"repobilityId": "faef56a45714da08", "scanner": "scanner-primary", "fingerprint": "4269df933a473c2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dcbccced58754c59", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/governance/retention-policies?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:63)"}, "properties": {"repobilityId": "e7bf4c7b156ee1c7", "scanner": "scanner-primary", "fingerprint": "dcbccced58754c59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d34470045a7ef7cf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/governance/compliance-status?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:73)"}, "properties": {"repobilityId": "364b82519919f27d", "scanner": "scanner-primary", "fingerprint": "d34470045a7ef7cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5edd672b7e3eca80", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/governance/dsr-queue?workspaceId=${WORKSPACE_ID} (apps/dashboard/app/admin/data-governance/page.tsx:83)"}, "properties": {"repobilityId": "d6696edf4686046e", "scanner": "scanner-primary", "fingerprint": "5edd672b7e3eca80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e0377b90977ee7d2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/governance/retention-policies (apps/dashboard/app/admin/data-governance/page.tsx:98)"}, "properties": {"repobilityId": "d1768dd436f8440d", "scanner": "scanner-primary", "fingerprint": "e0377b90977ee7d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-069eeebea8035fb8", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/governance/compliance-status (apps/dashboard/app/admin/data-governance/page.tsx:108)"}, "properties": {"repobilityId": "3ae13d6a7187b3c7", "scanner": "scanner-primary", "fingerprint": "069eeebea8035fb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b21cb26e5ce9bd4", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/governance/dsr-queue/${requestId}/status (apps/dashboard/app/admin/data-governance/page.tsx:117)"}, "properties": {"repobilityId": "8f78f1d804dc59d9", "scanner": "scanner-primary", "fingerprint": "3b21cb26e5ce9bd4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93ecae31037bb7fe", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/entity-linking/links/${id} (apps/dashboard/app/admin/entity-linking/page.tsx:108)"}, "properties": {"repobilityId": "49c0c9af6e45f1ab", "scanner": "scanner-primary", "fingerprint": "93ecae31037bb7fe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a359f1135a39382e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${selectedConnector}/schema/versions (apps/dashboard/app/admin/schema-migrations/page.tsx:60)"}, "properties": {"repobilityId": "0ae1300dd7bf37e7", "scanner": "scanner-primary", "fingerprint": "a359f1135a39382e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ffa04f0711a5be3b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/connectors/${selectedConnector}/schema/migrations (apps/dashboard/app/admin/schema-migrations/page.tsx:61)"}, "properties": {"repobilityId": "fd463e1c34cd32c1", "scanner": "scanner-primary", "fingerprint": "ffa04f0711a5be3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-59579e160b7cea6b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connectors/${selectedConnector}/schema/migrations (apps/dashboard/app/admin/schema-migrations/page.tsx:109)"}, "properties": {"repobilityId": "934f2801a496e563", "scanner": "scanner-primary", "fingerprint": "59579e160b7cea6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8e4064b768e8a961", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/webhooks/dlq (apps/dashboard/app/admin/webhooks/dlq/page.tsx:32)"}, "properties": {"repobilityId": "f53edd2be220f68f", "scanner": "scanner-primary", "fingerprint": "8e4064b768e8a961", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-481a55a7dd583630", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/admin/webhooks/dlq/analyze (apps/dashboard/app/admin/webhooks/dlq/page.tsx:33)"}, "properties": {"repobilityId": "c0a536c9ce1b64aa", "scanner": "scanner-primary", "fingerprint": "481a55a7dd583630", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35ff5c601708c7c7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/webhooks/dlq/${id}/replay (apps/dashboard/app/admin/webhooks/dlq/page.tsx:50)"}, "properties": {"repobilityId": "874efd943186fb3c", "scanner": "scanner-primary", "fingerprint": "35ff5c601708c7c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a87d9714cd2ed2c1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/admin/webhooks/dlq/prune (apps/dashboard/app/admin/webhooks/dlq/page.tsx:66)"}, "properties": {"repobilityId": "342c9262ad29114a", "scanner": "scanner-primary", "fingerprint": "a87d9714cd2ed2c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c582b57a89669b75", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/ha/status (apps/dashboard/app/admin/ha-config/page.tsx:46)"}, "properties": {"repobilityId": "710c88df434b49e1", "scanner": "scanner-primary", "fingerprint": "c582b57a89669b75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a6bcf7f9fcbddf5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/ha/history (apps/dashboard/app/admin/ha-config/page.tsx:47)"}, "properties": {"repobilityId": "1b5a4c8d4f918284", "scanner": "scanner-primary", "fingerprint": "7a6bcf7f9fcbddf5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9918fea179f42fb7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/ha/failover (apps/dashboard/app/admin/ha-config/page.tsx:64)"}, "properties": {"repobilityId": "18865967557cf24c", "scanner": "scanner-primary", "fingerprint": "9918fea179f42fb7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a37ac2d690713254", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/context/stream/metrics (apps/dashboard/app/context-monitor/page.tsx:25)"}, "properties": {"repobilityId": "8e3e53392b0bfe92", "scanner": "scanner-primary", "fingerprint": "a37ac2d690713254", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c57a4742c71ea9c5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/onboarding/status (apps/dashboard/app/onboarding/page.tsx:26)"}, "properties": {"repobilityId": "000c4c4ab39c968a", "scanner": "scanner-primary", "fingerprint": "c57a4742c71ea9c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b8d30bd8b195581", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/onboarding/start (apps/dashboard/app/onboarding/page.tsx:36)"}, "properties": {"repobilityId": "bca4c5feae7136da", "scanner": "scanner-primary", "fingerprint": "1b8d30bd8b195581", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-957b22d9e4ca3606", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:44)"}, "properties": {"repobilityId": "54576937a0a1b364", "scanner": "scanner-primary", "fingerprint": "957b22d9e4ca3606", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e707cf248841a144", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:60)"}, "properties": {"repobilityId": "05f78dde1dd27f9a", "scanner": "scanner-primary", "fingerprint": "e707cf248841a144", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-14584d531d9e41ed", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/search-tuning/weights (apps/dashboard/app/search-tuning/page.tsx:81)"}, "properties": {"repobilityId": "b6f9e6e4fc8894b2", "scanner": "scanner-primary", "fingerprint": "14584d531d9e41ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0ad2f4b17b20247e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/recommended-contexts?topK=12 (apps/dashboard/app/team-insights/page.tsx:66)"}, "properties": {"repobilityId": "2124ba391f91f69f", "scanner": "scanner-primary", "fingerprint": "0ad2f4b17b20247e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-805ff4fc6a175280", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/usage?window=30d (apps/dashboard/app/team-insights/page.tsx:69)"}, "properties": {"repobilityId": "29f1d1a1163b20fc", "scanner": "scanner-primary", "fingerprint": "805ff4fc6a175280", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-66662d8496525ef7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/teams/${encodeURIComponent(teamId)}/expansion-suggestions (apps/dashboard/app/team-insights/page.tsx:72)"}, "properties": {"repobilityId": "5377818533bcdf51", "scanner": "scanner-primary", "fingerprint": "66662d8496525ef7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-63ab32f2c6040e18", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/entities?${params} (apps/dashboard/app/entities/page.tsx:61)"}, "properties": {"repobilityId": "911483d4166a2685", "scanner": "scanner-primary", "fingerprint": "63ab32f2c6040e18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b7d065f24fce6a86", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sdks/languages (apps/dashboard/app/developers/sdk-portal/page.tsx:81)"}, "properties": {"repobilityId": "861425239b0843b4", "scanner": "scanner-primary", "fingerprint": "b7d065f24fce6a86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ce4fa799519f0ad4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sdks/tools (apps/dashboard/app/developers/sdk-portal/page.tsx:91)"}, "properties": {"repobilityId": "53653289d6de2d96", "scanner": "scanner-primary", "fingerprint": "ce4fa799519f0ad4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8bd689fbb3e1626e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/sdks/preview/${selectedLang} (apps/dashboard/app/developers/sdk-portal/page.tsx:101)"}, "properties": {"repobilityId": "382cc5e0f30de1ca", "scanner": "scanner-primary", "fingerprint": "8bd689fbb3e1626e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4015cf02c0ae0848", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/sdks/generate/${selectedLang} (apps/dashboard/app/developers/sdk-portal/page.tsx:113)"}, "properties": {"repobilityId": "c1ddc627d146f5da", "scanner": "scanner-primary", "fingerprint": "4015cf02c0ae0848", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb7d2f1b42fd642b", "level": "error", "message": {"text": "Dangling fetch: POST https://events.pagerduty.com/v2/enqueue (packages/semantic-core/src/alerts.ts:390)"}, "properties": {"repobilityId": "ea435f9c14b95ebb", "scanner": "scanner-primary", "fingerprint": "eb7d2f1b42fd642b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0db822ed38069ccb", "level": "error", "message": {"text": "Dangling fetch: POST https://api.cohere.ai/v1/embed (packages/semantic-core/src/providers/cohere-provider.ts:49)"}, "properties": {"repobilityId": "81e125cf858c94e3", "scanner": "scanner-primary", "fingerprint": "0db822ed38069ccb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91c910a60fe50f9b", "level": "error", "message": {"text": "Dangling fetch: POST https://auth.atlassian.com/oauth/token (packages/connectors/jira/src/jira-connector.ts:245)"}, "properties": {"repobilityId": "45c5a9c1e08cd3a7", "scanner": "scanner-primary", "fingerprint": "91c910a60fe50f9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c9ab67e8d0c5a73", "level": "error", "message": {"text": "Dangling fetch: POST https://login.salesforce.com/services/oauth2/token (packages/connectors/salesforce/src/salesforce-connector.ts:248)"}, "properties": {"repobilityId": "8cf3058eceed90da", "scanner": "scanner-primary", "fingerprint": "3c9ab67e8d0c5a73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b46eb6688e9fef1b", "level": "error", "message": {"text": "Dangling fetch: POST https://auth.atlassian.com/oauth/token (packages/connectors/confluence/src/confluence-connector.ts:249)"}, "properties": {"repobilityId": "31bae1ab0d57cf6e", "scanner": "scanner-primary", "fingerprint": "b46eb6688e9fef1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fe4a8d250ad5c30e", "level": "error", "message": {"text": "Dangling fetch: GET https://api.test.example.com/contacts (packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:35)"}, "properties": {"repobilityId": "66aefdafadc28937", "scanner": "scanner-primary", "fingerprint": "fe4a8d250ad5c30e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-264acf4bc75a1e08", "level": "error", "message": {"text": "Dangling fetch: GET https://api.test.example.com/unknown (packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:43)"}, "properties": {"repobilityId": "f7776646a6bd9a5f", "scanner": "scanner-primary", "fingerprint": "264acf4bc75a1e08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1f895e302225f915", "level": "error", "message": {"text": "Dangling fetch: GET https://api.test.example.com/auth (packages/connector-sdk/src/testing/__tests__/connector-test-harness.test.ts:51)"}, "properties": {"repobilityId": "dd80895b9a5c8e7a", "scanner": "scanner-primary", "fingerprint": "1f895e302225f915", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f1daeda83de2b575", "level": "note", "message": {"text": "Unused endpoint: USE /:id/sync"}, "properties": {"repobilityId": "5839e9032c801b3a", "scanner": "scanner-primary", "fingerprint": "f1daeda83de2b575", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59fe9dd5557daec2", "level": "note", "message": {"text": "Unused endpoint: USE /webhooks/*"}, "properties": {"repobilityId": "63307179fad7ccad", "scanner": "scanner-primary", "fingerprint": "59fe9dd5557daec2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b76fb2beeee122c0", "level": "note", "message": {"text": "Unused endpoint: GET /top-workspaces"}, "properties": {"repobilityId": "443eaa41385966f5", "scanner": "scanner-primary", "fingerprint": "b76fb2beeee122c0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f88bff6fd58393b9", "level": "note", "message": {"text": "Unused endpoint: GET /resources"}, "properties": {"repobilityId": "25be4bf9a88c7fee", "scanner": "scanner-primary", "fingerprint": "f88bff6fd58393b9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-44950aca0190b23b", "level": "note", "message": {"text": "Unused endpoint: GET /:id/forecast"}, "properties": {"repobilityId": "b2a1c0b0de2d78fe", "scanner": "scanner-primary", "fingerprint": "44950aca0190b23b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2004770b8ccd071", "level": "note", "message": {"text": "Unused endpoint: GET /:id/forecast-alerts"}, "properties": {"repobilityId": "3a1dadd7d038e7f3", "scanner": "scanner-primary", "fingerprint": "e2004770b8ccd071", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7e4db7ff6ed90b3c", "level": "note", "message": {"text": "Unused endpoint: POST /attribute"}, "properties": {"repobilityId": "569f5a97e5f5e76e", "scanner": "scanner-primary", "fingerprint": "7e4db7ff6ed90b3c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-739ebfb11aa012e2", "level": "note", "message": {"text": "Unused endpoint: GET /entities/:entityId"}, "properties": {"repobilityId": "503c941558bb7cad", "scanner": "scanner-primary", "fingerprint": "739ebfb11aa012e2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9f3254799251d820", "level": "note", "message": {"text": "Unused endpoint: GET /entities/:entityId/forecast"}, "properties": {"repobilityId": "14417a4fd5eae93f", "scanner": "scanner-primary", "fingerprint": "9f3254799251d820", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-013741023e3fc124", "level": "note", "message": {"text": "Unused endpoint: GET /connectors/:connectorId"}, "properties": {"repobilityId": "aafedd6e716c99dd", "scanner": "scanner-primary", "fingerprint": "013741023e3fc124", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-61dd05ecafcd2eb2", "level": "note", "message": {"text": "Unused endpoint: GET /users/:userId"}, "properties": {"repobilityId": "2782e3fc14059d6c", "scanner": "scanner-primary", "fingerprint": "61dd05ecafcd2eb2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c720723c1e389b3", "level": "note", "message": {"text": "Unused endpoint: POST /connector-events"}, "properties": {"repobilityId": "6a73993432b369ca", "scanner": "scanner-primary", "fingerprint": "1c720723c1e389b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2b19f1664f99779", "level": "note", "message": {"text": "Unused endpoint: GET /:traceId"}, "properties": {"repobilityId": "6afcfc087be1b62f", "scanner": "scanner-primary", "fingerprint": "e2b19f1664f99779", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6e6daf482bbd6050", "level": "note", "message": {"text": "Unused endpoint: GET /:entityId"}, "properties": {"repobilityId": "df96504b0f837743", "scanner": "scanner-primary", "fingerprint": "6e6daf482bbd6050", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-04e96b6997650f68", "level": "note", "message": {"text": "Unused endpoint: POST /:entityId/impact-analysis"}, "properties": {"repobilityId": "73f76008a103ea23", "scanner": "scanner-primary", "fingerprint": "04e96b6997650f68", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-71db64b021004288", "level": "note", "message": {"text": "Unused endpoint: GET /agents/:agentId/proactive-preview"}, "properties": {"repobilityId": "4adc2a176f318ebc", "scanner": "scanner-primary", "fingerprint": "71db64b021004288", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a540d7a48abfeae0", "level": "note", "message": {"text": "Unused endpoint: GET /agents/:agentId/profile"}, "properties": {"repobilityId": "cc7d883feedd6c3a", "scanner": "scanner-primary", "fingerprint": "a540d7a48abfeae0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9ad3f5be86a399c2", "level": "note", "message": {"text": "Unused endpoint: GET /agents/:agentId/acceptance-stats"}, "properties": {"repobilityId": "b81b24e64c9bef8c", "scanner": "scanner-primary", "fingerprint": "9ad3f5be86a399c2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d24d06cb7de19fc0", "level": "note", "message": {"text": "Unused endpoint: POST /agents/:agentId/proactive-settings"}, "properties": {"repobilityId": "a6ae5a09675fdeba", "scanner": "scanner-primary", "fingerprint": "d24d06cb7de19fc0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e1a90dbd80b0749", "level": "note", "message": {"text": "Unused endpoint: POST /proactive/feedback"}, "properties": {"repobilityId": "cf6fa8c61256da76", "scanner": "scanner-primary", "fingerprint": "4e1a90dbd80b0749", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-419089e7ca779e72", "level": "note", "message": {"text": "Unused endpoint: POST /:id/restore"}, "properties": {"repobilityId": "28709c88418a0801", "scanner": "scanner-primary", "fingerprint": "419089e7ca779e72", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-657738c47e96f71f", "level": "note", "message": {"text": "Unused endpoint: DELETE /:configId"}, "properties": {"repobilityId": "c1f593f4105f9c8e", "scanner": "scanner-primary", "fingerprint": "657738c47e96f71f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d589369692398512", "level": "note", "message": {"text": "Unused endpoint: POST /:configId/test"}, "properties": {"repobilityId": "830d3a293efee14d", "scanner": "scanner-primary", "fingerprint": "d589369692398512", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-605b9d060c8506c3", "level": "note", "message": {"text": "Unused endpoint: GET /opt-in"}, "properties": {"repobilityId": "3c203fe6bb5c6ce8", "scanner": "scanner-primary", "fingerprint": "605b9d060c8506c3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3256cfc1140aaab6", "level": "note", "message": {"text": "Unused endpoint: POST /opt-in"}, "properties": {"repobilityId": "e4cbbf1469c9802e", "scanner": "scanner-primary", "fingerprint": "3256cfc1140aaab6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4290fe6bd8d00fce", "level": "note", "message": {"text": "Unused endpoint: POST /opt-out"}, "properties": {"repobilityId": "134b756474d78643", "scanner": "scanner-primary", "fingerprint": "4290fe6bd8d00fce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c368dede2e2f5cee", "level": "note", "message": {"text": "Unused endpoint: GET /peers"}, "properties": {"repobilityId": "cae96eb4e549c8cf", "scanner": "scanner-primary", "fingerprint": "c368dede2e2f5cee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c35bdeabdbc78d85", "level": "note", "message": {"text": "Unused endpoint: POST /plan"}, "properties": {"repobilityId": "2b10b1e69f45fcf4", "scanner": "scanner-primary", "fingerprint": "c35bdeabdbc78d85", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8cf04100f0f61e0f", "level": "note", "message": {"text": "Unused endpoint: POST /estimate"}, "properties": {"repobilityId": "b300cc7445cfd465", "scanner": "scanner-primary", "fingerprint": "8cf04100f0f61e0f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a71b7a3857b25e6", "level": "note", "message": {"text": "Unused endpoint: POST /recommend-contexts"}, "properties": {"repobilityId": "9372580f61becb30", "scanner": "scanner-primary", "fingerprint": "7a71b7a3857b25e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-347bba8d732b1b09", "level": "note", "message": {"text": "Unused endpoint: POST /group-actions"}, "properties": {"repobilityId": "25d595640f343582", "scanner": "scanner-primary", "fingerprint": "347bba8d732b1b09", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-749b440fdc4b9aa7", "level": "note", "message": {"text": "Unused endpoint: POST /group-score"}, "properties": {"repobilityId": "69413df433c1e819", "scanner": "scanner-primary", "fingerprint": "749b440fdc4b9aa7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-14556968f8c5e36e", "level": "note", "message": {"text": "Unused endpoint: GET /results/:sessionId"}, "properties": {"repobilityId": "e1f1620ff95ff59b", "scanner": "scanner-primary", "fingerprint": "14556968f8c5e36e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9fc5e60358f93e88", "level": "note", "message": {"text": "Unused endpoint: POST /:connectorInstanceId/:secret"}, "properties": {"repobilityId": "f28b9b857187e537", "scanner": "scanner-primary", "fingerprint": "9fc5e60358f93e88", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed0896ac4aad8652", "level": "note", "message": {"text": "Unused endpoint: GET /import/jobs"}, "properties": {"repobilityId": "1f88f8dc862f0aa9", "scanner": "scanner-primary", "fingerprint": "ed0896ac4aad8652", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1bedaecbe6c6d695", "level": "note", "message": {"text": "Unused endpoint: GET /import/jobs/:jobId"}, "properties": {"repobilityId": "988106f6e7fab5ab", "scanner": "scanner-primary", "fingerprint": "1bedaecbe6c6d695", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e686634beeea0bb8", "level": "note", "message": {"text": "Unused endpoint: GET /export"}, "properties": {"repobilityId": "881f2577feaf97c1", "scanner": "scanner-primary", "fingerprint": "e686634beeea0bb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2858eab5bd8ed02a", "level": "note", "message": {"text": "Unused endpoint: GET /quality/:connectorId"}, "properties": {"repobilityId": "cfdbc826970e6948", "scanner": "scanner-primary", "fingerprint": "2858eab5bd8ed02a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-76afc4e62d1236f4", "level": "note", "message": {"text": "Unused endpoint: GET /gaps"}, "properties": {"repobilityId": "64629dabc268cddd", "scanner": "scanner-primary", "fingerprint": "76afc4e62d1236f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f6308a93f644bda", "level": "note", "message": {"text": "Unused endpoint: GET /sources/:sourceId/reliability"}, "properties": {"repobilityId": "c11bc1c4af5152e4", "scanner": "scanner-primary", "fingerprint": "6f6308a93f644bda", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8cfef7da3a36b578", "level": "note", "message": {"text": "Unused endpoint: POST /sources/feedback"}, "properties": {"repobilityId": "7307a57fe91b98fc", "scanner": "scanner-primary", "fingerprint": "8cfef7da3a36b578", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fc59fb3b9f5adf29", "level": "note", "message": {"text": "Unused endpoint: GET /roi/:connectorId"}, "properties": {"repobilityId": "edb982c9434ba84e", "scanner": "scanner-primary", "fingerprint": "fc59fb3b9f5adf29", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5f5cd6ee8152483e", "level": "note", "message": {"text": "Unused endpoint: GET /jobs/:jobId"}, "properties": {"repobilityId": "2cc66bc55d25d222", "scanner": "scanner-primary", "fingerprint": "5f5cd6ee8152483e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd310e0a65aa79bf", "level": "note", "message": {"text": "Unused endpoint: POST /tuning/:connectorId"}, "properties": {"repobilityId": "f01db9cfc6601b80", "scanner": "scanner-primary", "fingerprint": "cd310e0a65aa79bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0d1eb6de13da80b1", "level": "note", "message": {"text": "Unused endpoint: GET /config/:connectorId"}, "properties": {"repobilityId": "4a49b916e99a0c50", "scanner": "scanner-primary", "fingerprint": "0d1eb6de13da80b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c677189dc756ce1", "level": "note", "message": {"text": "Unused endpoint: POST /experiments/:connectorId"}, "properties": {"repobilityId": "62c9570a58feaac4", "scanner": "scanner-primary", "fingerprint": "8c677189dc756ce1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad5e663a54b219ee", "level": "note", "message": {"text": "Unused endpoint: GET /experiments"}, "properties": {"repobilityId": "14fb273d8f69e3a5", "scanner": "scanner-primary", "fingerprint": "ad5e663a54b219ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-417536760d263d8e", "level": "note", "message": {"text": "Unused endpoint: GET /window/:connectorId"}, "properties": {"repobilityId": "cc827a9ce4457442", "scanner": "scanner-primary", "fingerprint": "417536760d263d8e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa707e6676ea0139", "level": "note", "message": {"text": "Unused endpoint: GET /entities/:entityId/suggestions"}, "properties": {"repobilityId": "f0de13aa312d07bc", "scanner": "scanner-primary", "fingerprint": "aa707e6676ea0139", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b82874baa8f70ce", "level": "note", "message": {"text": "Unused endpoint: POST /auto-link"}, "properties": {"repobilityId": "2e4ec080e345e328", "scanner": "scanner-primary", "fingerprint": "6b82874baa8f70ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}